Linux: riscv: errata: select RISCV_ALTERNATIVE_EARLY for THEAD GHOSTWRITE
What fixes it
- 7fee577a2fa78b9a76da015beec1ccf978746ebbLinuxCVE List
- 298510bbc7c3017c0faf481c6ea66f1065b657b4LinuxCVE 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:
riscv: errata: select RISCV_ALTERNATIVE_EARLY for THEAD GHOSTWRITE
errata_probe_ghostwrite() only marks the CPU as vulnerable when it is called at the RISCV_ALTERNATIVES_EARLY_BOOT stage, and the mitigation in ghostwrite_enable_mitigation() only takes effect if the vulnerable state was recorded before the boot alternatives are patched.
The early boot stage is only executed when CONFIG_RISCV_ALTERNATIVE_EARLY is enabled, which currently is only selected by ERRATA_THEAD_MAE. In a kernel built with ERRATA_THEAD_GHOSTWRITE=y but ERRATA_THEAD_MAE=n, the early alternatives never run, so ghostwrite_state is never set to VULNERABLE: ghostwrite_enable_mitigation() returns false, xtheadvector remains enabled, and sysfs reports "Not affected" on a vulnerable T-Head C9xx CPU.
Select RISCV_ALTERNATIVE_EARLY from ERRATA_THEAD_GHOSTWRITE so that the vulnerability is detected in the early boot stage and the default mitigation is applied.
Text from CVE List
Affected versions 8
- Linuxaffected: 4bf97069239bcfca9840936313c7ac35a6e04488 before fa465a7819ecbe5801b78c088d3cadaf2664b8caCVE List
- Linuxaffected: 4bf97069239bcfca9840936313c7ac35a6e04488 before 7fee577a2fa78b9a76da015beec1ccf978746ebbCVE List
- Linuxaffected: 4bf97069239bcfca9840936313c7ac35a6e04488 before 298510bbc7c3017c0faf481c6ea66f1065b657b4CVE List
- Linuxaffected: 6.14CVE List
- Linuxunaffected: all versions before 6.14CVE List
- Linuxunaffected: 6.18.57 through 6.18.*CVE List
- Linuxunaffected: 7.2.11 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List