Linux: nvdimm: pmem: keep PREFLUSH before data writes
What fixes it
- 22d1f4dcdc9c6d0295c6db0c8933126098b14e05LinuxCVE List
- 770a90c2127220f0fc194ce909ad4f0842e141cbLinuxCVE List
- 72561ca1ab96f0f0f32737a6171641e05a318538LinuxCVE 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:
nvdimm: pmem: keep PREFLUSH before data writes
pmem_submit_bio() records a REQ_PREFLUSH error, but continues to copy the bio data and can later overwrite the error with a successful REQ_FUA flush. That lets data writes run after a failed preflush and can complete the bio successfully despite the failed ordering barrier.
Run the REQ_PREFLUSH flush synchronously before touching the bio data and complete the bio with the flush error if it fails. Keep asynchronous flush chaining for REQ_FUA. At that point, data copy has completed and the parent bio can wait for the chained flush bio.
Text from CVE List
Affected versions 12
- Linuxaffected: c5d4355d10d414a96ca870b731756b89d068d57a before 22d1f4dcdc9c6d0295c6db0c8933126098b14e05CVE List
- Linuxaffected: c5d4355d10d414a96ca870b731756b89d068d57a before d34c30bc994328d9cf6749b2e9a32aabd08fd076CVE List
- Linuxaffected: c5d4355d10d414a96ca870b731756b89d068d57a before 770a90c2127220f0fc194ce909ad4f0842e141cbCVE List
- Linuxaffected: c5d4355d10d414a96ca870b731756b89d068d57a before 72561ca1ab96f0f0f32737a6171641e05a318538CVE List
- Linuxaffected: c5d4355d10d414a96ca870b731756b89d068d57a before c644a2f8fef5618fcf453c591177700fd07dd024CVE List
- Linuxaffected: 5.3CVE List
- Linuxunaffected: all versions before 5.3CVE List
- Linuxunaffected: 6.6.160 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.52 through 6.18.*CVE List
- Linuxunaffected: 7.2.6 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 5
- git.kernel.org/stable/c/22d1f4dcdc9c6d0295c6db0c8933126098b14e05Referencevia CVE List
- git.kernel.org/stable/c/d34c30bc994328d9cf6749b2e9a32aabd08fd076Referencevia CVE List
- git.kernel.org/stable/c/770a90c2127220f0fc194ce909ad4f0842e141cbReferencevia CVE List
- git.kernel.org/stable/c/72561ca1ab96f0f0f32737a6171641e05a318538Referencevia CVE List
- git.kernel.org/stable/c/c644a2f8fef5618fcf453c591177700fd07dd024Referencevia CVE List