io_uring: fix filename leak in __io_openat_prep()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.198, 6.1.160, 6.6.120, 6.12.64, 6.18.3
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From b9445598d8c60a1379887b957024b71343965f74 · fixed in 2420ef01b2e836fbc05a0a8c73a1016504eb0458; From b9445598d8c60a1379887b957024b71343965f74 · fixed in 8f44c4a550570cd5903625133f938c6b51310c9b; From b9445598d8c60a1379887b957024b71343965f74 · fixed in 18b99fa603d0df5e1c898699c17d3b92ddc80746; From b9445598d8c60a1379887b957024b71343965f74 · fixed in e232269d511566b1f80872256a48593acc1becf4; From b9445598d8c60a1379887b957024b71343965f74 · fixed in 7fbfb85b05bc960cc50e09d03e5e562131e48d45; From b9445598d8c60a1379887b957024b71343965f74 · fixed in b14fad555302a2104948feaff70503b64c80ac01
- Linux Linux
5.15
- KernelLinux
From 5.15.0 · fixed in 5.15.198; From 5.16.0 · fixed in 6.1.160; From 6.2.0 · fixed in 6.6.120; From 6.7.0 · fixed in 6.12.64; From 6.13.0 · fixed in 6.18.3