CVE-2022-50261: drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
In the Linux kernel, the following vulnerability has been resolved:
drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
With clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),
indirect call targets are validated against the expected function
pointer prototype to make sure the call target is valid to help mitigate
ROP attacks. If they are not identical, there is a failure at run time,
which manifests as either a kernel panic or thread getting killed. A
proposed warning in clang aims to catch these at compile time, which
reveals:
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]
.mode_valid = sti_hda_connector_mode_valid,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
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]
.mode_valid = sti_dvo_connector_mode_valid,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
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]
.mode_valid = sti_hdmi_connector_mode_valid,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
->mode_valid() in 'struct drm_connector_helper_funcs' expects a return
type of 'enum drm_mode_status', not 'int'. Adjust the return type of
sti_{dvo,hda,hdmi}_connector_mode_valid() to match the prototype's to
resolve the warning and CFI failure.
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel driver defect in the DRM STI display connector code. A function return type mismatch can trigger clang kernel CFI failures, which may cause a kernel panic or kill a thread. The sources do not show active exploitation or a broad remote attack path.
Executive priority
Treat as a targeted kernel reliability risk, not an internet-wide emergency. Prioritize embedded, appliance, or display-enabled Linux systems that use this driver family, then absorb the fix through standard kernel update cycles.
Technical view
The STI DVO, HDA, and HDMI connector mode_valid callbacks returned int while drm_connector_helper_funcs expects enum drm_mode_status. With CONFIG_CFI_CLANG, indirect call prototype validation can fail at runtime. The kernel stable references change these callback return types to match the expected prototype.
Likely exposure
Exposure appears limited to Linux kernels with the affected DRM STI driver code, especially builds using clang kCFI. General server fleets without this driver path or CFI configuration are less likely to be exposed based on the provided sources.
Exploitation context
CISA KEV status is false in the bundle. The cited description documents runtime CFI failure, kernel panic, or thread termination, but does not provide evidence of public exploitation, exploit primitives, or attacker-controlled triggering conditions.
Researcher notes
Evidence is strongest for a type-safety and CFI compatibility bug. The source bundle lacks CVSS, CWE, exploit status, and trigger detail. Research should focus on affected kernel branches, driver reachability, and whether local display mode validation can reliably hit the callback.
Mitigation direction
Update to a kernel version containing the referenced stable fixes.
Prioritize systems using DRM STI display hardware or CONFIG_CFI_CLANG builds.
Check Linux distribution advisories for packaged backports.
Avoid direct kernel deployments outside normal vendor maintenance channels.
Validation and detection
Inventory kernels and identify affected version ranges from vendor advisories.
Check whether CONFIG_CFI_CLANG is enabled in deployed kernels.
Confirm whether the DRM STI driver is built or loaded.
Verify the stable fix is included in the running kernel source package.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-50261 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
10Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Sep 15, 2025, 14:03 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.