Linux: arm64: percpu: Fix LSE operations on {8,16}-bit types
What fixes it
- 390742871a723b52de9b92a94c0d1c85a2531e3eLinuxCVE List
- 843ace1d0a39e9b1cfcbfb3856a7b0fbdd9cd003LinuxCVE List
- 8cf2093f5372952a9ebc805c418d45df7112cd14LinuxCVE 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:
arm64: percpu: Fix LSE operations on {8,16}-bit types
The assembly for __percpu_##name##_case_##sz() and __percpu_##name##_return_case_##sz() doesn't use the 'sfx' macro argument to form the LSE instruction. Without 'sfx', a W register argument will imply a 32-bit memory location, and consequently {8,16}-bit ops will erroneously read and write 32 bits of memory when the LSE instruction is used.
Fix this by appending 'sfx' to 'op_lse' to LSE instruction. It is not necessary (and not valid) to append 'sfx' to 'op_llsc', as 'op_llsc' is a register-register operation which does not access memory (and does not take a size suffix).
Text from CVE List
Affected versions 10
- Linuxaffected: 959bf2fd03b59fc107584c21425f3dc73c49f762 before d69ab4480e49bf925f4781afcc9f284affcb96b6CVE List
- Linuxaffected: 959bf2fd03b59fc107584c21425f3dc73c49f762 before 390742871a723b52de9b92a94c0d1c85a2531e3eCVE List
- Linuxaffected: 959bf2fd03b59fc107584c21425f3dc73c49f762 before 843ace1d0a39e9b1cfcbfb3856a7b0fbdd9cd003CVE List
- Linuxaffected: 959bf2fd03b59fc107584c21425f3dc73c49f762 before 8cf2093f5372952a9ebc805c418d45df7112cd14CVE List
- Linuxaffected: 5.0CVE List
- Linuxunaffected: all versions before 5.0CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.54 through 6.18.*CVE List
- Linuxunaffected: 7.2.8 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 4
- git.kernel.org/stable/c/d69ab4480e49bf925f4781afcc9f284affcb96b6Referencevia CVE List
- git.kernel.org/stable/c/390742871a723b52de9b92a94c0d1c85a2531e3eReferencevia CVE List
- git.kernel.org/stable/c/843ace1d0a39e9b1cfcbfb3856a7b0fbdd9cd003Referencevia CVE List
- git.kernel.org/stable/c/8cf2093f5372952a9ebc805c418d45df7112cd14Referencevia CVE List