Linux: ata: libahci: clear PxCLBU and PxFBU for AHCI_HFLAG_32BIT_ONLY
What fixes it
- 0191c9ff23ef1678dbfb5ad253a2dee92feb5d71LinuxCVE List
- 8f510f68208a1f673d7c7234a687be4671490e9cLinuxCVE List
- 4719424bb7cb9f20b73986bcb72dd528f0e5c6ebLinuxCVE List
- 7912ad8fb5233bb8cfe21d50df639c7f4854ff9dLinuxCVE List
- 82e47533221d4746947b74d2e79a478c36c6433aLinuxCVE 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:
ata: libahci: clear PxCLBU and PxFBU for AHCI_HFLAG_32BIT_ONLY
A user reported that commit 105c42566a55 ("ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585") made the JMicron JMB585 unusable on his board.
The failure is seen as soon as the ahci driver is probed, and booting with iommu=off does not solve the problem.
Looking at the AHCI specification, PxCLBU and PxFBU are both read only '0' for HBAs that do not support 64-bit addressing.
For HBAs that do support 64-bit addressing, the registers are read write, with a reset value that is Implementation Specific.
When using the AHCI_HFLAG_32BIT_ONLY flag, the HBA does support 64-bit addressing, and a 32-bit DMA mask is set by simply clearing HOST_CAP_64. Thus, in this case, we need to explicitly clear the registers to 0.
Text from CVE List
Affected versions 18
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before 0191c9ff23ef1678dbfb5ad253a2dee92feb5d71CVE List
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before 8f510f68208a1f673d7c7234a687be4671490e9cCVE List
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before 4719424bb7cb9f20b73986bcb72dd528f0e5c6ebCVE List
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before a5a8b4737f68bbac8aa0685af0c8921e6003c22bCVE List
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before b28a17d4a9bb0aa38b48681c3927b012ba40eabeCVE List
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before b691a3e244278362e552439d6d3ee5a5d3703488CVE List
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before 7912ad8fb5233bb8cfe21d50df639c7f4854ff9dCVE List
- Linuxaffected: c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c before 82e47533221d4746947b74d2e79a478c36c6433aCVE List
- Linuxaffected: 2.6.22CVE List
- Linuxunaffected: all versions before 2.6.22CVE List
- Linuxunaffected: 5.10.271 through 5.10.*CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE 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 8
- git.kernel.org/stable/c/0191c9ff23ef1678dbfb5ad253a2dee92feb5d71Referencevia CVE List
- git.kernel.org/stable/c/8f510f68208a1f673d7c7234a687be4671490e9cReferencevia CVE List
- git.kernel.org/stable/c/4719424bb7cb9f20b73986bcb72dd528f0e5c6ebReferencevia CVE List
- git.kernel.org/stable/c/a5a8b4737f68bbac8aa0685af0c8921e6003c22bReferencevia CVE List
- git.kernel.org/stable/c/b28a17d4a9bb0aa38b48681c3927b012ba40eabeReferencevia CVE List
- git.kernel.org/stable/c/b691a3e244278362e552439d6d3ee5a5d3703488Referencevia CVE List
- git.kernel.org/stable/c/7912ad8fb5233bb8cfe21d50df639c7f4854ff9dReferencevia CVE List
- git.kernel.org/stable/c/82e47533221d4746947b74d2e79a478c36c6433aReferencevia CVE List