CVE-2024-39463: 9p: add missing locking around taking dentry fid list
In the Linux kernel, the following vulnerability has been resolved:
9p: add missing locking around taking dentry fid list
Fix a use-after-free on dentry's d_fsdata fid list when a thread
looks up a fid through dentry while another thread unlinks it:
UAF thread:
refcount_t: addition on 0; use-after-free.
p9_fid_get linux/./include/net/9p/client.h:262
v9fs_fid_find+0x236/0x280 linux/fs/9p/fid.c:129
v9fs_fid_lookup_with_uid linux/fs/9p/fid.c:181
v9fs_fid_lookup+0xbf/0xc20 linux/fs/9p/fid.c:314
v9fs_vfs_getattr_dotl+0xf9/0x360 linux/fs/9p/vfs_inode_dotl.c:400
vfs_statx+0xdd/0x4d0 linux/fs/stat.c:248
Freed by:
p9_fid_destroy (inlined)
p9_client_clunk+0xb0/0xe0 linux/net/9p/client.c:1456
p9_fid_put linux/./include/net/9p/client.h:278
v9fs_dentry_release+0xb5/0x140 linux/fs/9p/vfs_dentry.c:55
v9fs_remove+0x38f/0x620 linux/fs/9p/vfs_inode.c:518
vfs_unlink+0x29a/0x810 linux/fs/namei.c:4335
The problem is that d_fsdata was not accessed under d_lock, because
d_release() normally is only called once the dentry is otherwise no
longer accessible but since we also call it explicitly in v9fs_remove
that lock is required:
move the hlist out of the dentry under lock then unref its fids once
they are no longer accessible.
Security readout for executives and security teams
Plain-English summary
CVE-2024-39463 is a Linux kernel 9p filesystem use-after-free. A local user with low privileges may be able to trigger unsafe memory access when one thread looks up a 9p file identifier while another removes it. The CVSS score is high because successful exploitation could affect confidentiality, integrity, and availability.
Executive priority
Handle in the normal high-severity kernel patch cycle, with faster action for multi-user, shared, or virtualized environments where local users are less trusted. There is no source-backed evidence of active exploitation, but kernel memory corruption can become a serious privilege boundary risk.
Technical view
The bug is missing d_lock protection around a dentry d_fsdata fid list in fs/9p. v9fs_remove can explicitly release dentry data while another path, such as getattr/statx through v9fs_fid_find, still obtains a fid reference, creating a CWE-416 use-after-free. Kernel stable commits add locking and move the hlist before dropping fid references.
Likely exposure
Exposure is most likely on Linux systems running affected kernel versions where the 9p filesystem code is present and usable. The source bundle identifies Linux kernel versions beginning with 5.11 and stable branch fixes, but operators should map their distribution package versions to upstream fixes.
Exploitation context
The CVSS vector is local, low complexity, low privileges, and no user interaction. The bundle does not identify remote exploitation or confirmed in-the-wild exploitation, and KEV is false. Treat it as a local kernel memory-safety issue requiring practical access to a vulnerable system.
Researcher notes
The vulnerable race involves dentry fid-list access without d_lock while v9fs_remove explicitly releases dentry data. The public description includes KASAN-style traces for p9_fid_get and p9_fid_destroy paths. Analysis should focus on kernel version mapping, 9p reachability, and vendor backports rather than assuming all Linux hosts are equally exposed.
Mitigation direction
Update to a kernel containing the referenced stable fixes or your distribution backport.
Prioritize systems where untrusted local users can access 9p functionality.
Check vendor advisories for distribution-specific fixed package versions.
Reduce unnecessary 9p exposure where operationally possible until patched.
Do not deploy directly from upstream assumptions; confirm packaged kernel status.
Validation and detection
Inventory Linux kernel versions across hosts and images.
Identify systems where 9p filesystem support is enabled or mounted.
Compare kernel packages against vendor advisories and upstream stable fix references.
Review vulnerability scanner findings for CVE-2024-39463 package mapping accuracy.
After patching, verify the running kernel changed, not only the installed package.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-416: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
2ADP providers
7Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-416 · source CWE mapping
Use After Free
Use After Free represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.