KernelScan.io

HIGH

smb CachedFid Race

CVE-2026-23230

CVSS 8.8 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

KernelScan AI7.0HIGH

01

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.

02

Engine v0.2.0

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.

Affectedfs/smb/client/cached_dir.h (SMB client)

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.

03

BranchFixed inPatch commit
6.16.1.164569fecc56bfe
6.126.12.723eaa22d68831
6.186.18.11c4b9edd55987
6.196.19.14cfa4c37dcbc
6.66.6.1254386f6af8aae
mainline7.0ec306600d5ba