CVE-2025-38298

Summary

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

EDAC/skx_common: Fix general protection fault

After loading i10nm_edac (which automatically loads skx_edac_common), if unload only i10nm_edac, then reload it and perform error injection testing, a general protection fault may occur:

mce: [Hardware Error]: Machine check events logged Oops: general protection fault … … Workqueue: events mce_gen_pool_process RIP: 0010:string+0x53/0xe0 … Call Trace: <TASK> ? die_addr+0x37/0x90 ? exc_general_protection+0x1e7/0x3f0 ? asm_exc_general_protection+0x26/0x30 ? string+0x53/0xe0 vsnprintf+0x23e/0x4c0 snprintf+0x4d/0x70 skx_adxl_decode+0x16a/0x330 [skx_edac_common] skx_mce_check_error.part.0+0xf8/0x220 [skx_edac_common] skx_mce_check_error+0x17/0x20 [skx_edac_common] …

The issue arose was because the variable 'adxl_component_count' (inside skx_edac_common), which counts the ADXL components, was not reset. During the reloading of i10nm_edac, the count was incremented by the actual number of ADXL components again, resulting in a count that was double the real number of ADXL components. This led to an out-of-bounds reference to the ADXL component array, causing the general protection fault above.

Fix this issue by resetting the 'adxl_component_count' in adxl_put(), which is called during the unloading of {skx,i10nm}_edac.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxc68d1dbfe381260e8e30880fa6b8e708e57143f6 < 80bf28fd623d97dd4f4825fbbe9d736cec2afba3affected
LinuxLinux3070e81609169b316e3e3f226456950238338d43 < a6ed3a6edff09c1187cc6ade7f5967bca2376a13affected
LinuxLinux2259b26ff45a231579485752bda51acf87c39d18 < bf6a8502a5f4ff6e4d135d795945cdade49ec8b0affected
LinuxLinux6d0d9f0fd13536ed21b9c0dd576ba292f750a1c1 < e8530ed3c0769a4d8f79c212715ec1cf277787f8affected
LinuxLinuxc25ae63de6805589e954b86020f89065b9eca4d4 < 3f5d0659000923735350da60ad710f8c804544feaffected
LinuxLinux123b158635505c89ed0d3ef45c5845ff9030a466 < a13e8343ffcff27af1ff79597ff7ba241e6d9471affected
LinuxLinux123b158635505c89ed0d3ef45c5845ff9030a466 < 31ef6f7c9aee3be78d63789653e92350f2537f93affected
LinuxLinux123b158635505c89ed0d3ef45c5845ff9030a466 < 20d2d476b3ae18041be423671a8637ed5ffd6958affected
LinuxLinux32700ecf8007e071d1ce4c78f65b85f46d05f32aaffected
LinuxLinux5.4.282 < 5.4.295affected
LinuxLinux5.10.224 < 5.10.239affected
LinuxLinux5.15.165 < 5.15.186affected
LinuxLinux6.1.103 < 6.1.142affected
LinuxLinux6.6.44 < 6.6.94affected
LinuxLinux6.10.3 < 6.11affected
LinuxLinux6.11affected
LinuxLinux0 < 6.11unaffected
LinuxLinux5.4.295 <= 5.4.*unaffected
LinuxLinux5.10.239 <= 5.10.*unaffected
LinuxLinux5.15.186 <= 5.15.*unaffected
LinuxLinux6.1.142 <= 6.1.*unaffected
LinuxLinux6.6.94 <= 6.6.*unaffected
LinuxLinux6.12.34 <= 6.12.*unaffected
LinuxLinux6.15.3 <= 6.15.*unaffected
LinuxLinux6.16 <= *unaffected

Weaknesses

ADP Enrichment

CVE Program Container

Additional References

References