CVE-2025-38580

Source
https://nvd.nist.gov/vuln/detail/CVE-2025-38580
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38580.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2025-38580
Downstream
Published
2025-08-19T17:03:03Z
Modified
2025-10-22T14:45:17.771229Z
Summary
ext4: fix inode use after free in ext4_end_io_rsv_work()
Details

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

ext4: fix inode use after free in ext4endiorsvwork()

In ext4ioenddefercompletion(), check if ioend->listvec is empty to avoid adding an ioend that requires no conversion to the irsvconversionlist, which in turn prevents starting an unnecessary worker. An ext4emergencystate() check is also added to avoid attempting to abort the journal in an emergency state.

Additionally, ext4putioenddefer() is refactored to call ext4ioenddefercompletion() directly instead of being open-coded. This also prevents starting an unnecessary worker when EXT4IOENDFAILED is set but dataerr=abort is not enabled.

This ensures that the check in ext4putioenddefer() is consistent with the check in ext4endbio(). Otherwise, we might add an ioend to the irsvconversionlist and then call ext4finishbio(), after which the inode could be freed before ext4endiorsvwork() is called, triggering a use-after-free issue.

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
ce51afb8cc5e1867ea0dfdf5e92ddbe31a1fad5d
Fixed
ac999862b98a0f49e858e509f776be51406f1e77
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
ce51afb8cc5e1867ea0dfdf5e92ddbe31a1fad5d
Fixed
469c44e66e2110054949609dde095788320139d0
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
ce51afb8cc5e1867ea0dfdf5e92ddbe31a1fad5d
Fixed
c678bdc998754589cea2e6afab9401d7d8312ac4

Affected versions

v6.*

v6.14
v6.14-rc3
v6.14-rc4
v6.14-rc5
v6.14-rc6
v6.14-rc7
v6.15
v6.15-rc1
v6.15-rc2
v6.15-rc3
v6.15-rc4
v6.15-rc5
v6.15-rc6
v6.15-rc7
v6.15.1
v6.15.2
v6.15.3
v6.15.4
v6.15.5
v6.15.6
v6.15.7
v6.15.8
v6.15.9
v6.16
v6.16-rc1
v6.16-rc2
v6.16-rc3
v6.16-rc4
v6.16-rc5
v6.16-rc6
v6.16-rc7

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.15.0
Fixed
6.15.10
Type
ECOSYSTEM
Events
Introduced
6.16.0
Fixed
6.16.1