HIGH
smb CachedFid Race
CVE-2026-23230
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
KernelScan AI7.0HIGH
01Description
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.
02KernelScan AI Analysis
Risk summary
A race condition in the SMB client's cached directory handling can cause memory corruption when multiple threads concurrently update bitfield flags. This affects systems with SMB/CIFS mounts where concurrent filesystem operations can trigger the race, potentially leading to information disclosure or system instability.
Vulnerability analysis
The vulnerability stems from storing multiple boolean flags (is_open, has_lease, on_list) as bitfields in the same byte within struct cached_fid. Concurrent updates from different code paths generate read-modify-write operations that can cause one CPU's update to restore stale values of flags cleared by another CPU. The fix converts these to separate bool fields, eliminating the shared-byte race condition. The attack surface is local, requiring the ability to perform concurrent SMB filesystem operations.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.1 | 6.1.164 | 569fecc56bfe |
| 6.12 | 6.12.72 | 3eaa22d68831 |
| 6.18 | 6.18.11 | c4b9edd55987 |
| 6.19 | 6.19.1 | 4cfa4c37dcbc |
| 6.6 | 6.6.125 | 4386f6af8aae |
| mainline | 7.0 | ec306600d5ba |