CVE-2024-41012CWE-416

CVE-2024-41012

High · published July 23, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
13.0
In the wild
Unconfirmed
What it is

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

filelock: Remove locks reliably when fcntl/close race is detected

When fcntl_setlk() races with close(), it removes the created lock with

do_lock_file_wait().

However, LSMs can allow the first do_lock_file_wait() that created the lock

while denying the second do_lock_file_wait() that tries to remove the lock.

Separately, posix_lock_file() could also fail to

remove a lock due to GFP_KERNEL allocation failure (when splitting a range

in the middle).

After the bug has been triggered, use-after-free reads will occur in

lock_get_status() when userspace reads /proc/locks. This can likely be used

to read arbitrary kernel memory, but can't corrupt kernel memory.

Fix it by calling locks_remove_posix() instead, which is designed to

reliably get rid of POSIX locks associated with the given file and

files_struct and is also used by filp_flush().

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00230 · 13.0th percentile
Weakness
CWE-416 · Use After Free
Published
2024-07-23T12:15Z
Affected products (13)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.13, < 4.19.3194.19.319
linux/linux_kernel≥ 4.20, < 5.4.2815.4.281
linux/linux_kernel≥ 5.5, < 5.10.2235.10.223
linux/linux_kernel≥ 5.11, < 5.15.1645.15.164
linux/linux_kernel≥ 5.16, < 6.1.1016.1.101
linux/linux_kernel≥ 6.2, < 6.6.426.6.42
linux/linux_kernel≥ 6.7, < 6.9.96.9.9
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (17)
https://git.kernel.org/stable/c/3cad1bc010416c6dd780643476bc59ed742436b9 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/52c87ab18c76c14d7209646ccb3283b3f5d87b22 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/5661b9c7ec189406c2dde00837aaa4672efb6240 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/5f5d0799eb0a01d550c21b7894e26b2d9db55763 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/b6d223942c34057fdfd8f149e763fa823731b224 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/d30ff33040834c3b9eee29740acd92f9c7ba2250 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/dc2ce1dfceaa0767211a9d963ddb029ab21c4235 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/ef8fc41cd6f95f9a4a3470f085aecf350569a0b3 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/3cad1bc010416c6dd780643476bc59ed742436b9 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/52c87ab18c76c14d7209646ccb3283b3f5d87b22 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/5661b9c7ec189406c2dde00837aaa4672efb6240 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/5f5d0799eb0a01d550c21b7894e26b2d9db55763 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/b6d223942c34057fdfd8f149e763fa823731b224 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/d30ff33040834c3b9eee29740acd92f9c7ba2250 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/dc2ce1dfceaa0767211a9d963ddb029ab21c4235 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/ef8fc41cd6f95f9a4a3470f085aecf350569a0b3 · af854a3a-2127-422b-91ae-364da2661108https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html · af854a3a-2127-422b-91ae-364da2661108
EPSS history
Timeline
  • 23 JUL 08:06Z
    filelock: Remove locks reliably when fcntl/close race is detected
    cvelistv5