CVE-2024-39503CWE-362CWE-416

CVE-2024-39503

High · published July 12, 2024

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

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

netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type

Lion Ackermann reported that there is a race condition between namespace cleanup

in ipset and the garbage collection of the list:set type. The namespace

cleanup can destroy the list:set type of sets while the gc of the set type is

waiting to run in rcu cleanup. The latter uses data from the destroyed set which

thus leads use after free. The patch contains the following parts:

- When destroying all sets, first remove the garbage collectors, then wait

if needed and then destroy the sets.

- Fix the badly ordered "wait then remove gc" for the destroy a single set

case.

- Fix the missing rcu locking in the list:set type in the userspace test

case.

- Use proper RCU list handlings in the list:set type.

The patch depends on c1193d9bbbd3 (netfilter: ipset: Add list flush to cancel_gc).

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.00221 · 12.0th percentile
Weaknesses
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'); CWE-416 · Use After Free
Published
2024-07-12T17:15Z
Affected products (16)
ProductVersionsFixed in
linux/linux_kernel≥ 5.4.269, < 5.4.2795.4.279
linux/linux_kernel≥ 5.10.210, < 5.10.2215.10.221
linux/linux_kernel≥ 5.15.149, < 5.15.1625.15.162
linux/linux_kernel≥ 6.1.79, < 6.1.956.1.95
linux/linux_kernel≥ 6.6.18, < 6.6.356.6.35
linux/linux_kernel≥ 6.7.6, < 6.86.8
linux/linux_kernel≥ 6.8.1, < 6.9.66.9.6
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
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 (18)
https://git.kernel.org/stable/c/0f1bb77c6d837c9513943bc7c08f04c5cc5c6568 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/2ba35b37f780c6410bb4bba9c3072596d8576702 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/390b353d1a1da3e9c6c0fd14fe650d69063c95d6 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/4e7aaa6b82d63e8ddcbfb56b4fd3d014ca586f10 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/90ae20d47de602198eb69e6cd7a3db3420abfc08 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/93b53c202b51a69e42ca57f5a183f7e008e19f83 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/c0761d1f1ce1d5b85b5e82bbb714df12de1aa8c3 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/0f1bb77c6d837c9513943bc7c08f04c5cc5c6568 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/2ba35b37f780c6410bb4bba9c3072596d8576702 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/390b353d1a1da3e9c6c0fd14fe650d69063c95d6 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/4e7aaa6b82d63e8ddcbfb56b4fd3d014ca586f10 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/90ae20d47de602198eb69e6cd7a3db3420abfc08 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/93b53c202b51a69e42ca57f5a183f7e008e19f83 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/c0761d1f1ce1d5b85b5e82bbb714df12de1aa8c3 · af854a3a-2127-422b-91ae-364da2661108https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html · af854a3a-2127-422b-91ae-364da2661108https://cert-portal.siemens.com/productcert/html/ssa-265688.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-355557.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5ehttps://cert-portal.siemens.com/productcert/html/ssa-613116.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
EPSS history
Timeline
  • 12 JUL 12:20Z
    netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
    cvelistv5