Linux: EDAC/altera: Drop __init from ECC setup paths for re-probe safety
What fixes it
- 9846b85c2eb8b749c3f14bdcc31b1070f6aabba8LinuxCVE List
- 4ec26cb7984740941892ad21fa974963c198bfaaLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
EDAC/altera: Drop __init from ECC setup paths for re-probe safety
Sashiko reports:
"Does suppressing sysfs unbinding fully prevent the execution of freed __init memory? If altr_sysmgr_regmap_lookup_by_phandle() returns -EPROBE_DEFER, the probe is deferred until after __init memory is freed."
The a10 EDAC .setup callbacks (sdmmc, ethernet, nand, dma, usb, qspi) and their helpers (altr_init_a10_ecc_device_type, altr_init_a10_ecc_block) were marked __init. These run from the probe path, which may execute after init memory is freed -- e.g. a probe deferred via -EPROBE_DEFER that only succeeds once a late/module dependency appears, or a manual unbind/rebind. Calling __init code then dereferences freed memory. Remove __init so these functions remain valid at runtime.
Text from CVE List
Affected versions 8
- Linuxaffected: 788586efd116d6d7d05985881eda503333e702b4 before 9846b85c2eb8b749c3f14bdcc31b1070f6aabba8CVE List
- Linuxaffected: 788586efd116d6d7d05985881eda503333e702b4 before 4ec26cb7984740941892ad21fa974963c198bfaaCVE List
- Linuxaffected: 788586efd116d6d7d05985881eda503333e702b4 before b62a264163ca51bee04785c581344751812395dfCVE List
- Linuxaffected: 5.2CVE List
- Linuxunaffected: all versions before 5.2CVE List
- Linuxunaffected: 6.18.56 through 6.18.*CVE List
- Linuxunaffected: 7.2.10 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List