CVE-2025-68814
NoneCVSS
—
EPSS
0.2%
Published
Jan 13, 2026
CISA due date
—
Cloudanix analysis
A bug in the core Linux operating system can slowly waste memory during certain file-handling tasks, which over time might make systems slower or cause crashes if left unfixed.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Other
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Memory leak of struct filename objects allocated via getname() in __io_openat_prep() when a request installs a file into the fixed file table with O_CLOEXEC; the REQ_F_NEED_CLEANUP flag is never set, so the filename is not freed on request teardown.
Why it matters to the business
Repeated triggering on Linux systems using io_uring can gradually exhaust kernel memory, leading to performance degradation or denial of service; widespread kernel prevalence increases exposure but low exploitability and no known campaigns limit immediate operational risk.
How an attack unfolds
An attacker triggers the vulnerable early-return path in __io_openat_prep() by submitting io_uring open requests that target the fixed file table while setting O_CLOEXEC, causing repeated allocations without cleanup and eventual memory exhaustion.
How to fix it
Apply the upstream fix by updating the Linux kernel to a version containing commit 2420ef01b2e836fbc05a0a8c73a1016504eb0458 or later; rebuild and deploy the patched kernel across all affected systems.
How to confirm the fix worked
Verify the running kernel contains commit 2420ef01b2e836fbc05a0a8c73a1016504eb0458 or a backport; confirm no early return occurs without REQ_F_NEED_CLEANUP by code review or memory-leak testing under the described io_uring conditions.
Typical attack path
- Submit io_uring SQE for file open targeting fixed file table
- Set O_CLOEXEC flag on the open request
- Force early return before REQ_F_NEED_CLEANUP is applied
- Repeat to accumulate leaked filename structures
- Observe kernel memory growth until resource exhaustion
How to detect it
Review kernel memory statistics and io_uring request traces for repeated open operations into fixed file tables; correlate with process activity that uses io_uring SQEs carrying O_CLOEXEC to identify potential leak sources.
What your security team should do
- Prioritize kernel upgrade to the fixed commit on all production systems within standard change windows
- Monitor io_uring usage and kernel memory metrics for anomalous growth until patched
- Restrict untrusted code from using io_uring fixed file tables where feasible
The record
In the Linux kernel, the following vulnerability has been resolved: io_uring: fix filename leak in __io_openat_prep() __io_openat_prep() allocates a struct filename using getname(). However, for the condition of the file being installed in the fixed file table as well as having O_CLOEXEC flag set, the function returns early. At that point, the request doesn't have REQ_F_NEED_CLEANUP flag set. Due to this, the memory for the newly allocated struct filename is not cleaned up, causing a memory leak. Fix this by setting the REQ_F_NEED_CLEANUP for the request just after the successful getname() call, so that when the request is torn down, the filename will be cleaned up, along with other resources needing cleanup.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 5.15.0 | 5.15.198 |
| Mageia:9 | kernel | 0 | 6.6.120-1.mga9 |
| Mageia:9 | kernel-linus | 0 | 6.6.120-1.mga9 |
| Mageia:9 | kmod-virtualbox | 0 | 7.1.14-14.mga9 |
| Mageia:9 | kmod-xtables-addons | 0 | 3.24-88.mga9 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-azure | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.26.1.160000.2.7 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.26.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.26.1 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel