Linux Kernel io_uring Filename Leak Vulnerability in __io_openat_prep()

Vulnerability

A memory leak vulnerability has been identified in the Linux kernel's io_uring implementation, specifically within the __io_openat_prep() function. This issue arises when the function allocates a struct filename using getname(). If the file is in the fixed file table and has the O_CLOEXEC flag set, the function exits early without cleaning up the allocated memory, leading to a leak. The vulnerability affects several versions of the Linux kernel.

Impact

The vulnerability causes a memory leak, where allocated resources are not properly released, potentially leading to increased memory usage and degradation of system performance over time.

Reproduction

The vulnerability can be reproduced by invoking the __io_openat_prep() function in a scenario where a file is added to the fixed file table with the O_CLOEXEC flag enabled. This will trigger the function to return early, leaving the allocated struct filename uncleaned and causing a memory leak.

Remediation

The vulnerability has been addressed by modifying the __io_openat_prep() function to set the REQ_F_NEED_CLEANUP flag immediately after successfully allocating the struct filename. This change ensures that the filename and other necessary resources are properly cleaned up when the request is completed.

Added: Jan 13, 2026, 5:56 PM
Updated: Jan 13, 2026, 5:56 PM

Vulnerability Rating

Custom Algorithm
spread
9.0
impact
0.6
exploitability
4.3
remediation
7.7
relevance
2.0
threat
4.8
urgency
2.9
incentive
1.7

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.