CVE-2024-55641

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-55641
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-55641.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2024-55641
Downstream
Related
Published
2025-01-11T12:29:56.052Z
Modified
2025-12-05T07:46:37.001564Z
Summary
xfs: unlock inodes when erroring out of xfs_trans_alloc_dir
Details

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

xfs: unlock inodes when erroring out of xfstransalloc_dir

Debugging a filesystem patch with generic/475 caused the system to hang after observing the following sequences in dmesg:

XFS (dm-0): metadata I/O error in "xfsimaptobp+0x61/0xe0 [xfs]" at daddr 0x491520 len 32 error 5 XFS (dm-0): metadata I/O error in "xfsbtreereadbufblock+0xba/0x160 [xfs]" at daddr 0x3445608 len 8 error 5 XFS (dm-0): metadata I/O error in "xfsimaptobp+0x61/0xe0 [xfs]" at daddr 0x138e1c0 len 32 error 5 XFS (dm-0): log I/O error -5 XFS (dm-0): Metadata I/O Error (0x1) detected at xfstransreadbufmap+0x1ea/0x4b0 [xfs] (fs/xfs/xfstransbuf.c:311). Shutting down filesystem. XFS (dm-0): Please unmount the filesystem and rectify the problem(s) XFS (dm-0): Internal error dqp->qino.reserved < dqp->qino.count at line 869 of file fs/xfs/xfstransdquot.c. Caller xfstransdqresv+0x236/0x440 [xfs] XFS (dm-0): Corruption detected. Unmount and run xfs_repair XFS (dm-0): Unmounting Filesystem be6bcbcc-9921-4deb-8d16-7cc94e335fa7

The system is stuck in unmount trying to lock a couple of inodes so that they can be purged. The dquot corruption notice above is a clue to what happened -- a link() call tried to set up a transaction to link a child into a directory. Quota reservation for the transaction failed after IO errors shut down the filesystem, but then we forgot to unlock the inodes on our way out. Fix that.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/55xxx/CVE-2024-55641.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
bd5562111d58392298a3c3b93caad71dff681b4b
Fixed
6aefe5d97ae57b1343dc60d8bb6a4ed070e5bcea
Fixed
53b001a21c9dff73b64e8c909c41991f01d5d00f

Affected versions

v6.*

v6.10
v6.10-rc1
v6.10-rc2
v6.10-rc3
v6.10-rc4
v6.10-rc5
v6.10-rc6
v6.10-rc7
v6.11
v6.11-rc1
v6.11-rc2
v6.11-rc3
v6.11-rc4
v6.11-rc5
v6.11-rc6
v6.11-rc7
v6.12
v6.12-rc1
v6.12-rc2
v6.12-rc3
v6.12-rc4
v6.12-rc5
v6.12-rc6
v6.12-rc7
v6.12.1
v6.12.2
v6.12.3
v6.12.4
v6.12.5
v6.13-rc1
v6.13-rc2
v6.9
v6.9-rc5
v6.9-rc6
v6.9-rc7

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.10.0
Fixed
6.12.6