CVE-2023-53511

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-53511
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53511.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-53511
Downstream
Related
Published
2025-10-01T11:46:00.185Z
Modified
2025-11-28T02:35:02.999861Z
Summary
io_uring: fix fget leak when fs don't support nowait buffered read
Details

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

io_uring: fix fget leak when fs don't support nowait buffered read

Heming reported a BUG when using io_uring doing link-cp on ocfs2. [1]

Do the following steps can reproduce this BUG: mount -t ocfs2 /dev/vdc /mnt/ocfs2 cp testfile /mnt/ocfs2/ ./link-cp /mnt/ocfs2/testfile /mnt/ocfs2/testfile.1 umount /mnt/ocfs2

Then umount will fail, and it outputs: umount: /mnt/ocfs2: target is busy.

While tracing umount, it blames mntgetcount() not return as expected. Do a deep investigation for fget()/fput() on related code flow, I've finally found that fget() leaks since ocfs2 doesn't support nowait buffered read.

ioissuesqe |-ioassignfile // do fget() first |-ioread |-ioiterdoread |-ocfs2filereaditer // return -EOPNOTSUPP |-kiocbdone |-iorwdone |-_iocompleterwcommon // set REQFREISSUE |-ioresubmitprep |-ioreqprep_async // override req->file, leak happens

This was introduced by commit a196c78b5443 in v5.18. Fix it by don't re-assign req->file if it has already been assigned.

[1] https://lore.kernel.org/ocfs2-devel/ab580a75-91c8-d68a-3455-40361be1bfa8@linux.alibaba.com/T/#t

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53511.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
a196c78b5443fc61af2c0490213b9d125482cbd1
Fixed
75a499fc9d66a32271e2b3e4ca71156e8ad3b484
Fixed
10fb2e16ee6ffaf1716b9e90d007e6b300bfa457
Fixed
54aa7f2330b82884f4a1afce0220add6e8312f8b
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
cef27a7d36026bd3c86f4fdfb4611ebbe2814af4

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.18.0
Fixed
6.1.16
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.2.3