CVE-2025-21999 — proc: fix UAF in proc_get_inode()
In the Linux kernel, the following vulnerability has been resolved: proc: fix UAF in proc_get_inode() Fix race between rmmod and /proc/XXX's inode instantiation. The bug is that pde->proc_ops don't belong to /proc, it belongs to a module, therefore dereferencing it after /proc entry has been registered is a bug unless use_pde/unuse_pde() pair has been used. use_pde/unuse_pde can be avoided (2 atomic ops!) because pde->proc_ops never changes so information necessary for inode instantiation can be saved _before_ proc_register() in PDE itself and used later, avoiding pde->proc_ops->... dereference. rmmod lookup sys_delete_module proc_lookup_de pde_get(de); proc_get_inode(dir->i_sb, de); mod->exit() proc_remove remove_proc_subtree proc_entry_rundown(de); free_module(mod); if (S_ISREG(inode->i_mode)) if (de->proc_ops->proc_read_iter) --> As module is already freed, will trigger UAF BUG: unable to handle page fault for address: fffffbfff80a702b PGD 817fc4067 P4D 817fc4067 PUD 817fc0067 PMD 102ef4067 PTE 0 Oops: Oops: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 26 UID: 0 PID: 2667 Comm: ls Tainted: G Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) RIP: 0010:proc_get_inode+0x302/0x6e0 RSP: 0018:ffff88811c837998 EFLAGS: 00010a06 RAX: dffffc0000000000 RBX: ffffffffc0538140 RCX: 0000000000000007 RDX: 1ffffffff80a702b RSI: 0000000000000001 RDI: ffffffffc0538158 RBP: ffff8881299a6000 R08: 0000000067bbe1e5 R09: 1ffff11023906f20 R10: ffffffffb560ca07 R11: ffffffffb2b43a58 R12: ffff888105bb78f0 R13: ffff888100518048 R14: ffff8881299a6004 R15: 0000000000000001 FS: 00007f95b9686840(0000) GS:ffff8883af100000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: fffffbfff80a702b CR3: 0000000117dd2000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> proc_lookup_de+0x11f/0x2e0 __lookup_slow+0x188/0x350 walk_component+0x2ab/0x4f0 path_lookupat+0x120/0x660 filename_lookup+0x1ce/0x560 vfs_statx+0xac/0x150 __do_sys_newstat+0x96/0x110 do_syscall_64+0x5f/0x170 entry_SYSCALL_64_after_hwframe+0x76/0x7e [adobriyan@gmail.com: don't do 2 atomic ops on the common path]
Who exploits it and how urgent it is
A 0–100 score combining confirmed exploitation, ransomware and APT use, public exploits, EPSS and severity.
How the score was calculated
- EPSS 0.2% (30-day exploitation probability)+2
- Technical severity (high)+6
The score orders the patch queue; it does not replace your asset context (internet exposure, criticality, compensating controls).
Triage
Is it exploited, how likely is exploitation, what does it touch, and how severe do the sources call it.
CISA SSVC assessment CISA
Three decision points CISA publishes for the CVEs it assesses (SSVC 2.0.3). A stakeholder decision, not a severity score.
Remediation
Fixes and mitigations documented by the sources — linked to the original advisory.
- Documented patch — git.kernel.org (NIST National Vulnerability Database)
- Documented patch — git.kernel.org (NIST National Vulnerability Database)
- Documented patch — git.kernel.org (NIST National Vulnerability Database)
- Documented patch — git.kernel.org (NIST National Vulnerability Database)
- Documented patch — git.kernel.org (NIST National Vulnerability Database)
First 24 hours
Ordered from the record’s own fields — exposure first, because you cannot patch what you have not found. A rule-generated starting point.
- Identify exposed assets running the affected vendor/product/version combinations (Linux Linux, Linux Linux Kernel).
- Apply the fixed version or the patch documented under Remediation.
- Search available logs for exploit probes matching the vulnerability class (memory corruption), errors and authentication anomalies.
Affected scope
Vendor, product and versions as the sources word them.
| Vendor | Product | Versions | Status | Source |
|---|---|---|---|---|
| Linux | Linux | ≥ 97a32539b9568bb653683349e5a76d02ff3c3e2c and < eda279586e571b05dff44d48e05f8977ad05855d≥ 97a32539b9568bb653683349e5a76d02ff3c3e2c and < 4b0b8445b6fd41e6f62ac90547a0ea9d348de3fa≥ 97a32539b9568bb653683349e5a76d02ff3c3e2c and < 966f331403dc3ed04ff64eaf3930cf1267965e53≥ 97a32539b9568bb653683349e5a76d02ff3c3e2c and < 63b53198aff2e4e6c5866a4ff73c7891f958ffa4≥ 97a32539b9568bb653683349e5a76d02ff3c3e2c and < ede3e8ac90ae106f0b29cd759aadebc1568f1308≥ 97a32539b9568bb653683349e5a76d02ff3c3e2c and < 64dc7c68e040251d9ec6e989acb69f8f6ae4a10b≥ 97a32539b9568bb653683349e5a76d02ff3c3e2c and < 654b33ada4ab5e926cd9c570196fefa7bec7c1dfversion 5.6 | Vulnerable | CVE Program (cve.org) e CISA ADP |
| Linux | Linux Kernel | ≥ 2.6.23 and < 6.1.132≥ 6.2 and < 6.6.85≥ 6.7 and < 6.12.21≥ 6.13 and < 6.13.9version 6.14-rc1version 6.14-rc2version 6.14-rc3version 6.14-rc4 | Vulnerable | NIST National Vulnerability Database |
Attack characteristics
The CVSS vector, decoded. It describes the attack, not your exposure to it.
Every base score collected
Sources score independently and may disagree; each row says who scored it and under which version.
| Score | Version | Severity | Expl. | Impact | Scored by |
|---|---|---|---|---|---|
| 7.8 | CVSS 3.1 | High | 1.8 | 5.9 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 via NIST National Vulnerability Database |
| 7.8 | CVSS 3.1 | High | 1.8 | 5.9 | 134c704f-9b21-4f2e-91b3-4a467353bcc0 via NIST National Vulnerability Database |
| 7.8 | CVSS 3.1 | High | — | — | Linux via CVE Program (cve.org) e CISA ADP |
| 7.8 | CVSS 3.1 | High | — | — | CISA-ADP via CVE Program (cve.org) e CISA ADP |
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (score shown at the top: 416baaa9-dc9f-4396-8d5f-8c081fb06d67) Weakness MITRE
Weakness class according to MITRE’s CWE catalog.
Detection
Read off the CVSS vector and the weakness class. Starting points, not tested rules.
- Local/physical vector: focus on endpoint telemetry (EDR) from affected hosts.
- Correlate service crashes/restarts with inbound traffic; repeated crashes may indicate attempts.
Timeline
What happened to this CVE, newest first.
- 2026
- Affected products added · linux/linux
- SSVC assessment updated
- Record published
- Fix documented
- CVSS changed · 7.8
- Source status changed · → Modified
- Record created in this database
- 2025
- CVE published
Source activity
Repeated readings are counted rather than listed.
- 1× Official description updated · Oct 15, 2026 – Oct 15, 2026
References
11 on the record
- git.kernel.org/stable/c/654b33ada4ab5e926cd9c570196fefa7bec7c1df
- git.kernel.org/stable/c/ede3e8ac90ae106f0b29cd759aadebc1568f1308
- git.kernel.org/stable/c/64dc7c68e040251d9ec6e989acb69f8f6ae4a10b
- git.kernel.org/stable/c/63b53198aff2e4e6c5866a4ff73c7891f958ffa4
- git.kernel.org/stable/c/966f331403dc3ed04ff64eaf3930cf1267965e53
- lists.debian.org/debian-lts-announce/2025/05/msg00045.html
- git.kernel.org/stable/c/eda279586e571b05dff44d48e05f8977ad05855d
- lists.debian.org/debian-lts-announce/2025/05/msg00030.html
- git.kernel.org/stable/c/4b0b8445b6fd41e6f62ac90547a0ea9d348de3fa
- cert-portal.siemens.com/productcert/html/ssa-457936.html
- cert-portal.siemens.com/productcert/html/ssa-019113.html
Elsewhere on this site
Related CVEs (same products)
- Critical CVE-2026-99999 ipv4: validate checksum_start before completing checksum 6h
- Unknown CVE-2026-98432 ipv4: free inet_opt and ireq_opt after an RCU grace period 6h
- Unknown CVE-2026-98425 wifi: mac80211: don't warn when an IBSS has no channel to scan 1d
- Unknown CVE-2026-98424 wifi: cfg80211: undo netns switch if renaming the wiphy fails 1d
- Unknown CVE-2026-98426 wifi: mwifiex: fix IRQ leak using wrong index in MSI-X error path 1d
- Unknown CVE-2026-98427 net/sched: codel: bound the dropping loop per dequeue call 1d
Not in any source we poll
Listed rather than left blank: an empty field and an unmeasured one look identical on screen, and only one is a reason to look elsewhere.
- No confirmed IOCs, IP addresses, domains, file hashes, or malware artifacts supplied.
- No organization-specific asset inventory, compensating-control status, or patch deployment evidence supplied.
- No exploit packet captures, log samples, or incident case IDs supplied.
Answered from this record
Text assembled only from the fields above — no additional claims.
What should defenders know first?
CVE-2025-21999 is "proc: fix UAF in proc_get_inode()", rated High. It affects Linux (Linux); versions are in the scope table. It is not in CISA KEV, which does not rule out exploitation. CVSS 7.8 describes technical severity. EPSS 0.23% estimates the probability of exploitation in 30 days; neither replaces your asset context. First verify whether exposed or business-critical assets run the affected versions, apply vendor fixes or mitigations, and preserve logs for review.
Comments
Moderated technical discussion. Read the community guidelines.
No comments yet.
Sign in or create an account to comment and suggest corrections.