CVE-2025-38298
published 2025-07-10CVE-2025-38298: In the Linux kernel, the following vulnerability has been resolved: EDAC/skx_common: Fix general protection fault After loading i10nm_edac (which automatically…
high7.8CVSS 3.1
AVLACLPRLUINSUCHIHAH
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:
? 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
41 ranges· showing 25
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | debian_linux | — | — |
| debian | linux | < linux 6.1.147-1 (bookworm) | linux 6.1.147-1 (bookworm) |
| debian | linux-6.1 | < linux 6.1.147-1 (bookworm) | linux 6.1.147-1 (bookworm) |
| linux | linux | — | — |
| linux | linux | — | — |
| linux | linux | >= 123b158635505c89ed0d3ef45c5845ff9030a466 < a13e8343ffcff27af1ff79597ff7ba241e6d9471 | a13e8343ffcff27af1ff79597ff7ba241e6d9471 |
| linux | linux | >= 123b158635505c89ed0d3ef45c5845ff9030a466 < 31ef6f7c9aee3be78d63789653e92350f2537f93 | 31ef6f7c9aee3be78d63789653e92350f2537f93 |
| linux | linux | >= 123b158635505c89ed0d3ef45c5845ff9030a466 < 20d2d476b3ae18041be423671a8637ed5ffd6958 | 20d2d476b3ae18041be423671a8637ed5ffd6958 |
| linux | linux | >= 2259b26ff45a231579485752bda51acf87c39d18 < bf6a8502a5f4ff6e4d135d795945cdade49ec8b0 | bf6a8502a5f4ff6e4d135d795945cdade49ec8b0 |
| linux | linux | >= 3070e81609169b316e3e3f226456950238338d43 < a6ed3a6edff09c1187cc6ade7f5967bca2376a13 | a6ed3a6edff09c1187cc6ade7f5967bca2376a13 |
| linux | linux | >= 5.10.224 < 5.10.239 | 5.10.239 |
| linux | linux | >= 5.15.165 < 5.15.186 | 5.15.186 |
| linux | linux | >= 5.4.282 < 5.4.295 | 5.4.295 |
| linux | linux | >= 6.1.103 < 6.1.142 | 6.1.142 |
| linux | linux | >= 6.10.3 < 6.11 | 6.11 |
| linux | linux | >= 6.6.44 < 6.6.94 | 6.6.94 |
| linux | linux | >= 6d0d9f0fd13536ed21b9c0dd576ba292f750a1c1 < e8530ed3c0769a4d8f79c212715ec1cf277787f8 | e8530ed3c0769a4d8f79c212715ec1cf277787f8 |
| linux | linux | >= c25ae63de6805589e954b86020f89065b9eca4d4 < 3f5d0659000923735350da60ad710f8c804544fe | 3f5d0659000923735350da60ad710f8c804544fe |
| linux | linux | >= c68d1dbfe381260e8e30880fa6b8e708e57143f6 < 80bf28fd623d97dd4f4825fbbe9d736cec2afba3 | 80bf28fd623d97dd4f4825fbbe9d736cec2afba3 |
| linux | linux_kernel | >= 0 < 5.10.244-1 | 5.10.244-1 |
| linux | linux_kernel | >= 0 < 6.1.147-1 | 6.1.147-1 |
| linux | linux_kernel | >= 0 < 6.12.35-1 | 6.12.35-1 |
| linux | linux_kernel | >= 0 < 6.12.35-1 | 6.12.35-1 |
| linux | linux_kernel | >= 0 < 5.15.0-156.166 | 5.15.0-156.166 |
| linux | linux_kernel | >= 0 < 6.8.0-100.100 | 6.8.0-100.100 |
CVSS provenance
nvdv3.17.8HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
osv7.8HIGH