CVE-2022-50261
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
15/09/2025
Última modificación:
15/09/2025
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()<br />
<br />
With clang&#39;s kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),<br />
indirect call targets are validated against the expected function<br />
pointer prototype to make sure the call target is valid to help mitigate<br />
ROP attacks. If they are not identical, there is a failure at run time,<br />
which manifests as either a kernel panic or thread getting killed. A<br />
proposed warning in clang aims to catch these at compile time, which<br />
reveals:<br />
<br />
drivers/gpu/drm/sti/sti_hda.c:637:16: error: incompatible function pointer types initializing &#39;enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)&#39; with an expression of type &#39;int (struct drm_connector *, struct drm_display_mode *)&#39; [-Werror,-Wincompatible-function-pointer-types-strict]<br />
.mode_valid = sti_hda_connector_mode_valid,<br />
^~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
drivers/gpu/drm/sti/sti_dvo.c:376:16: error: incompatible function pointer types initializing &#39;enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)&#39; with an expression of type &#39;int (struct drm_connector *, struct drm_display_mode *)&#39; [-Werror,-Wincompatible-function-pointer-types-strict]<br />
.mode_valid = sti_dvo_connector_mode_valid,<br />
^~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
drivers/gpu/drm/sti/sti_hdmi.c:1035:16: error: incompatible function pointer types initializing &#39;enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)&#39; with an expression of type &#39;int (struct drm_connector *, struct drm_display_mode *)&#39; [-Werror,-Wincompatible-function-pointer-types-strict]<br />
.mode_valid = sti_hdmi_connector_mode_valid,<br />
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
<br />
->mode_valid() in &#39;struct drm_connector_helper_funcs&#39; expects a return<br />
type of &#39;enum drm_mode_status&#39;, not &#39;int&#39;. Adjust the return type of<br />
sti_{dvo,hda,hdmi}_connector_mode_valid() to match the prototype&#39;s to<br />
resolve the warning and CFI failure.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/04371a75a58422a301a9ff9ae3babd310ac3bb3f
- https://git.kernel.org/stable/c/0ad811cc08a937d875cbad0149c1bab17f84ba05
- https://git.kernel.org/stable/c/511b48ee8e4aec2d03d2af06b363d9eb3230b017
- https://git.kernel.org/stable/c/6e3c4d3fa5d458d685561ecbaf8daa9dba14979e
- https://git.kernel.org/stable/c/8f9941dea3a70b73f2063f9dcc4aaae6af03c5ba
- https://git.kernel.org/stable/c/a075c21ee026f4a74f9fce5928ea3c8d18a8af13
- https://git.kernel.org/stable/c/b2c92b2a3801b09b709cbefd9a9e4944b72400bf
- https://git.kernel.org/stable/c/b4307c7d35e346b909edfdc1f280902150570bb6
- https://git.kernel.org/stable/c/e578b0906b6a81479cd5b5b6c848a7096addf5e9