Description
In the Linux kernel, the following vulnerability has been resolved:

io_uring/nop: fix file reference leak with IOSQE_FIXED_FILE

NOP file-acquisition support choses between a fixed (registered) file and
a normal fget()'d file based on its own IORING_NOP_FIXED_FILE flag in
sqe->nop_flags. However, a request's REQ_F_FIXED_FILE is set
independently from the generic IOSQE_FIXED_FILE sqe flag during request
init, before the issue handler runs.

If a NOP is submitted with IOSQE_FIXED_FILE set (so REQ_F_FIXED_FILE is
set) but without IORING_NOP_FIXED_FILE, io_nop() takes the normal path
and grabs a real reference via io_file_get_normal(). On completion,
io_put_file() only drops the reference when REQ_F_FIXED_FILE is clear,
so the fget()'d file is never released and leaks:

BUG: memory leak
unreferenced object 0xffff88800f42c240 (size 176):
kmem_cache_alloc_noprof+0x358/0x440
alloc_empty_file+0x57/0x180
path_openat+0x44/0x1e50
do_file_open+0x121/0x200
do_sys_openat2+0xa7/0x150
__x64_sys_openat+0x82/0xf0

Decide between fixed and normal file acquisition from REQ_F_FIXED_FILE,
the same way io_assign_file() does for every other opcode, and fold
IORING_NOP_FIXED_FILE into REQ_F_FIXED_FILE at prep time.
Published: 2026-07-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel, the io_uring NOP opcode contained a bug where the choice between a fixed (registered) file and a normal file acquired via fget() was incorrectly determined. When a NOP was submitted with the IOSQE_FIXED_FILE flag but without the IORING_NOP_FIXED_FILE flag, the kernel used the normal path and grabbed a new file reference. Because the reference flag was never cleared, that reference was never released, leaving an unreferenced kernel memory object that remains allocated. The leak occurs each time such a NOP is executed, potentially accumulating and exhausting memory.

Affected Systems

This issue affects all Linux kernel releases that do not yet include the patch that folds IORING_NOP_FIXED_FILE into REQ_F_FIXED_FILE during request preparation. Every distribution shipping an affected kernel carries the flaw until the fix is applied. The CVE listing does not specify exact kernel versions, so all current kernels lacking the patch are considered vulnerable.

Risk and Exploitability

The EPSS score is less than 1% and the vulnerability is not listed in the CISA KEV catalog, indicating a low probability of exploitation in the wild. With a CVSS score of 5.5, the vulnerability is considered medium severity. The flaw does not provide code execution or privilege escalation; rather, it permits a local process that can submit io_uring NOP requests to leak kernel memory. Repeated exploitation could consume memory and potentially trigger a denial-of-service condition. The attack vector is local and requires the ability to create io_uring submissions with the incorrect flag combination. Because the kernel itself performs the faulty decision, any unpatched kernel will leak memory whenever such malformed NOP requests are processed.

Generated by OpenCVE AI on August 3, 2026 at 18:44 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel update that contains the io_uring/NOP fix.
  • If a patch is not yet available, rebuild the kernel with the commit that merges IORING_NOP_FIXED_FILE into REQ_F_FIXED_FILE.
  • As an interim measure, avoid submitting io_uring NOP requests with IOSQE_FIXED_FILE set without also setting IORING_NOP_FIXED_FILE, or disable the io_uring subsystem for processes that do not require it.

Generated by OpenCVE AI on August 3, 2026 at 18:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 02 Aug 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-359

Thu, 30 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-772
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sun, 26 Jul 2026 01:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-359

Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: io_uring/nop: fix file reference leak with IOSQE_FIXED_FILE NOP file-acquisition support choses between a fixed (registered) file and a normal fget()'d file based on its own IORING_NOP_FIXED_FILE flag in sqe->nop_flags. However, a request's REQ_F_FIXED_FILE is set independently from the generic IOSQE_FIXED_FILE sqe flag during request init, before the issue handler runs. If a NOP is submitted with IOSQE_FIXED_FILE set (so REQ_F_FIXED_FILE is set) but without IORING_NOP_FIXED_FILE, io_nop() takes the normal path and grabs a real reference via io_file_get_normal(). On completion, io_put_file() only drops the reference when REQ_F_FIXED_FILE is clear, so the fget()'d file is never released and leaks: BUG: memory leak unreferenced object 0xffff88800f42c240 (size 176): kmem_cache_alloc_noprof+0x358/0x440 alloc_empty_file+0x57/0x180 path_openat+0x44/0x1e50 do_file_open+0x121/0x200 do_sys_openat2+0xa7/0x150 __x64_sys_openat+0x82/0xf0 Decide between fixed and normal file acquisition from REQ_F_FIXED_FILE, the same way io_assign_file() does for every other opcode, and fold IORING_NOP_FIXED_FILE into REQ_F_FIXED_FILE at prep time.
Title io_uring/nop: fix file reference leak with IOSQE_FIXED_FILE
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-25T08:51:03.867Z

Reserved: 2026-07-19T15:36:31.787Z

Link: CVE-2026-64426

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-07-25T10:17:26.737

Modified: 2026-08-11T15:01:50.637

Link: CVE-2026-64426

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64426 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T18:45:17Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime