CVE-2024-39463
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
25/06/2024
Last modified:
06/01/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
9p: add missing locking around taking dentry fid list<br />
<br />
Fix a use-after-free on dentry&#39;s d_fsdata fid list when a thread<br />
looks up a fid through dentry while another thread unlinks it:<br />
<br />
UAF thread:<br />
refcount_t: addition on 0; use-after-free.<br />
p9_fid_get linux/./include/net/9p/client.h:262<br />
v9fs_fid_find+0x236/0x280 linux/fs/9p/fid.c:129<br />
v9fs_fid_lookup_with_uid linux/fs/9p/fid.c:181<br />
v9fs_fid_lookup+0xbf/0xc20 linux/fs/9p/fid.c:314<br />
v9fs_vfs_getattr_dotl+0xf9/0x360 linux/fs/9p/vfs_inode_dotl.c:400<br />
vfs_statx+0xdd/0x4d0 linux/fs/stat.c:248<br />
<br />
Freed by:<br />
p9_fid_destroy (inlined)<br />
p9_client_clunk+0xb0/0xe0 linux/net/9p/client.c:1456<br />
p9_fid_put linux/./include/net/9p/client.h:278<br />
v9fs_dentry_release+0xb5/0x140 linux/fs/9p/vfs_dentry.c:55<br />
v9fs_remove+0x38f/0x620 linux/fs/9p/vfs_inode.c:518<br />
vfs_unlink+0x29a/0x810 linux/fs/namei.c:4335<br />
<br />
The problem is that d_fsdata was not accessed under d_lock, because<br />
d_release() normally is only called once the dentry is otherwise no<br />
longer accessible but since we also call it explicitly in v9fs_remove<br />
that lock is required:<br />
move the hlist out of the dentry under lock then unref its fids once<br />
they are no longer accessible.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.168 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.94 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.34 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.9.5 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/3bb6763a8319170c2d41c4232c8e7e4c37dcacfb
- https://git.kernel.org/stable/c/c898afdc15645efb555acb6d85b484eb40a45409
- https://git.kernel.org/stable/c/cb299cdba09f46f090b843d78ba26b667d50a456
- https://git.kernel.org/stable/c/f0c5c944c6d8614c19e6e9a97fd2011dcd30e8f5
- https://git.kernel.org/stable/c/fe17ebf22feb4ad7094d597526d558a49aac92b4
- https://www.zerodayinitiative.com/advisories/ZDI-24-1194/
- https://git.kernel.org/stable/c/c898afdc15645efb555acb6d85b484eb40a45409
- https://git.kernel.org/stable/c/cb299cdba09f46f090b843d78ba26b667d50a456
- https://git.kernel.org/stable/c/f0c5c944c6d8614c19e6e9a97fd2011dcd30e8f5
- https://git.kernel.org/stable/c/fe17ebf22feb4ad7094d597526d558a49aac92b4



