smb: client: split cached_fid bitfields to avoid shared-byte RMW races
- 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.1.164, 6.6.125, 6.12.72, 6.18.11, 6.19.1
- 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: smb: client: split cached_fid bitfields to avoid shared-byte RMW races is_open, has_lease and on_list are stored in the same bitfield byte in struct cached_fid but are updated in different code paths that may run concurrently. Bitfield assignments generate byte read–modify–write operations (e.g. `orb $mask, addr` on x86_64), so updating one flag can restore stale values of the others. A possible interleaving is: CPU1: load old byte (has_lease=1, on_list=1) CPU2: clear both flags (store 0) CPU1: RMW store (old | IS_OPEN) -> reintroduces cleared bits To avoid this class of races, convert these flags to separate bool fields.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From ebe98f1447bbccf8228335c62d86af02a0ed23f7 · fixed in 569fecc56bfe4df66f05734d67daef887746656b; From ebe98f1447bbccf8228335c62d86af02a0ed23f7 · fixed in 4386f6af8aaedd0c5ad6f659b40cadcc8f423828; From ebe98f1447bbccf8228335c62d86af02a0ed23f7 · fixed in 3eaa22d688311c708b73f3c68bc6d0c8e3f0f77a; From ebe98f1447bbccf8228335c62d86af02a0ed23f7 · fixed in c4b9edd55987384a1f201d3d07ff71e448d79c1b; From ebe98f1447bbccf8228335c62d86af02a0ed23f7 · fixed in 4cfa4c37dcbcfd70866e856200ed8a2894cac578; From ebe98f1447bbccf8228335c62d86af02a0ed23f7 · fixed in ec306600d5ba7148c9dbf8f5a8f1f5c1a044a241
- Linux Linux
6.1
- KernelLinux
From 6.1.0 · fixed in 6.1.164; From 6.2.0 · fixed in 6.6.125; From 6.7.0 · fixed in 6.12.72; From 6.13.0 · fixed in 6.18.11; From 6.19.0 · fixed in 6.19.1