CVE-2022-50322

Summary

In the Linux kernel, the following vulnerability has been resolved:

rtc: msc313: Fix function prototype mismatch in msc313_rtc_probe()

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.

msc313_rtc_probe() was passing clk_disable_unprepare() directly, which did not have matching prototypes for devm_add_action_or_reset()'s callback argument. Refactor to use devm_clk_get_enabled() instead.

This was found as a result of Clang's new -Wcast-function-type-strict flag, which is more sensitive than the simpler -Wcast-function-type, which only checks for type width mismatches.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxbe7d9c9161b9c76edeff15e79edc2f256568fe05 < 5affaaf3334c9274131dae889ed79ea0553d61b4affected
LinuxLinuxbe7d9c9161b9c76edeff15e79edc2f256568fe05 < ba50fee6b41bcbafaeed3c51f90d37d1480ff9a0affected
LinuxLinuxbe7d9c9161b9c76edeff15e79edc2f256568fe05 < 21b8a1dd56a163825e5749b303858fb902ebf198affected
LinuxLinux5.16affected
LinuxLinux0 < 5.16unaffected
LinuxLinux6.0.17 <= 6.0.*unaffected
LinuxLinux6.1.3 <= 6.1.*unaffected
LinuxLinux6.2 <= *unaffected

Weaknesses

References