block: don't overwrite bip_vcnt in bio_integrity_copy_user()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.12.92, 6.18.34, 7.0.11
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: block: don't overwrite bip_vcnt in bio_integrity_copy_user() bio_integrity_add_page() already sets bip_vcnt to 1 for the bounce segment. Overwriting it with nr_vecs breaks bip_vcnt <= bip_max_vcnt on WRITE (bip_max_vcnt is 1), so the gap-merge checks in block/blk.h read past the bip_vec[] flex array. On READ the read is in bounds but lands on a saved user bvec instead of the bounce. The line was added for split propagation, but bio_integrity_clone() doesn't copy bip_vcnt and BIP_CLONE_FLAGS excludes BIP_COPY_USER.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 3991657ae7074c3c497bf095093178bed37ea1b4 · fixed in d18160c9525c63c203656fefd847e94b538cd4a4; From 3991657ae7074c3c497bf095093178bed37ea1b4 · fixed in 0d48654af4d1390c888389206cc13b51b82c30e6; From 3991657ae7074c3c497bf095093178bed37ea1b4 · fixed in 066be1439593a381b1a29663becfcfe0c92363e7; From 3991657ae7074c3c497bf095093178bed37ea1b4 · fixed in 637ad3a56a3b889527d1dacea6fea2a8bd648140
- Linux Linux
6.11
- KernelLinux
From 6.11.0 · fixed in 6.12.92; From 6.13.0 · fixed in 6.18.34; From 6.19.0 · fixed in 7.0.11