{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2022-50261", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-09-15T13:58:00.974Z", "datePublished": "2025-09-15T14:03:04.439Z", "dateUpdated": "2026-05-11T19:15:53.926Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-05-11T19:15:53.926Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()\n\nWith clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),\nindirect call targets are validated against the expected function\npointer prototype to make sure the call target is valid to help mitigate\nROP attacks. If they are not identical, there is a failure at run time,\nwhich manifests as either a kernel panic or thread getting killed. A\nproposed warning in clang aims to catch these at compile time, which\nreveals:\n\n drivers/gpu/drm/sti/sti_hda.c:637:16: error: incompatible function pointer types initializing 'enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)' with an expression of type 'int (struct drm_connector *, struct drm_display_mode *)' [-Werror,-Wincompatible-function-pointer-types-strict]\n .mode_valid = sti_hda_connector_mode_valid,\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~\n drivers/gpu/drm/sti/sti_dvo.c:376:16: error: incompatible function pointer types initializing 'enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)' with an expression of type 'int (struct drm_connector *, struct drm_display_mode *)' [-Werror,-Wincompatible-function-pointer-types-strict]\n .mode_valid = sti_dvo_connector_mode_valid,\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~\n drivers/gpu/drm/sti/sti_hdmi.c:1035:16: error: incompatible function pointer types initializing 'enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)' with an expression of type 'int (struct drm_connector *, struct drm_display_mode *)' [-Werror,-Wincompatible-function-pointer-types-strict]\n .mode_valid = sti_hdmi_connector_mode_valid,\n ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n->mode_valid() in 'struct drm_connector_helper_funcs' expects a return\ntype of 'enum drm_mode_status', not 'int'. Adjust the return type of\nsti_{dvo,hda,hdmi}_connector_mode_valid() to match the prototype's to\nresolve the warning and CFI failure." } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/sti/sti_dvo.c", "drivers/gpu/drm/sti/sti_hda.c", "drivers/gpu/drm/sti/sti_hdmi.c" ], "versions": [ { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "b2c92b2a3801b09b709cbefd9a9e4944b72400bf", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "b4307c7d35e346b909edfdc1f280902150570bb6", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "8f9941dea3a70b73f2063f9dcc4aaae6af03c5ba", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "511b48ee8e4aec2d03d2af06b363d9eb3230b017", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "6e3c4d3fa5d458d685561ecbaf8daa9dba14979e", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "a075c21ee026f4a74f9fce5928ea3c8d18a8af13", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "e578b0906b6a81479cd5b5b6c848a7096addf5e9", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "04371a75a58422a301a9ff9ae3babd310ac3bb3f", "status": "affected", "versionType": "git" }, { "version": "5402626c83a2f19da14859e2bab231a53e16ee74", "lessThan": "0ad811cc08a937d875cbad0149c1bab17f84ba05", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/gpu/drm/sti/sti_dvo.c", "drivers/gpu/drm/sti/sti_hda.c", "drivers/gpu/drm/sti/sti_hdmi.c" ], "versions": [ { "version": "3.17", "status": "affected" }, { "version": "0", "lessThan": "3.17", "status": "unaffected", "versionType": "semver" }, { "version": "4.9.337", "lessThanOrEqual": "4.9.*", "status": "unaffected", "versionType": "semver" }, { "version": "4.14.303", "lessThanOrEqual": "4.14.*", "status": "unaffected", "versionType": "semver" }, { "version": "4.19.270", "lessThanOrEqual": "4.19.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.229", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.163", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.86", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.0.16", "lessThanOrEqual": "6.0.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.2", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.2", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "4.9.337" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "4.14.303" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "4.19.270" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "5.4.229" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "5.10.163" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "5.15.86" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "6.0.16" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "6.1.2" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.17", "versionEndExcluding": "6.2" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/b2c92b2a3801b09b709cbefd9a9e4944b72400bf" }, { "url": "https://git.kernel.org/stable/c/b4307c7d35e346b909edfdc1f280902150570bb6" }, { "url": "https://git.kernel.org/stable/c/8f9941dea3a70b73f2063f9dcc4aaae6af03c5ba" }, { "url": "https://git.kernel.org/stable/c/511b48ee8e4aec2d03d2af06b363d9eb3230b017" }, { "url": "https://git.kernel.org/stable/c/6e3c4d3fa5d458d685561ecbaf8daa9dba14979e" }, { "url": "https://git.kernel.org/stable/c/a075c21ee026f4a74f9fce5928ea3c8d18a8af13" }, { "url": "https://git.kernel.org/stable/c/e578b0906b6a81479cd5b5b6c848a7096addf5e9" }, { "url": "https://git.kernel.org/stable/c/04371a75a58422a301a9ff9ae3babd310ac3bb3f" }, { "url": "https://git.kernel.org/stable/c/0ad811cc08a937d875cbad0149c1bab17f84ba05" } ], "title": "drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()", "x_generator": { "engine": "bippy-1.2.0" } } } }