Vulnerability · Published Jul 28, 2025 · Assigned by Linux

CVE-2025-38472netfilter: nf_conntrack: fix crash due to removal of uninitialised entry

Critical 9.8

In plain English

A critical-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.5% (higher than 40% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)9.8Critical
Exploit odds (30 days)0.5%top 59.7% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack: fix crash due to removal of uninitialised entry A crash in conntrack was reported while trying to unlink the conntrack entry from the hash bucket list: [exception RIP: __nf_ct_delete_from_lists+172] [..] #7 [ff539b5a2b043aa0] nf_ct_delete at ffffffffc124d421 [nf_conntrack] #8 [ff539b5a2b043ad0] nf_ct_gc_expired at ffffffffc124d999 [nf_conntrack] #9 [ff539b5a2b043ae0] __nf_conntrack_find_get at ffffffffc124efbc [nf_conntrack] [..] The nf_conn struct is marked as allocated from slab but appears to be in a partially initialised state: ct hlist pointer is garbage; looks like the ct hash value (hence crash). ct->status is equal to IPS_CONFIRMED|IPS_DYING, which is expected ct->timeout is 30000 (=30s), which is unexpected. Everything else looks like normal udp conntrack entry. If we ignore ct->status and pretend its 0, the entry matches those that are newly allocated but not yet inserted into the hash: - ct hlist pointers are overloaded and store/cache the raw tuple hash - ct->timeout matches the relative time expected for a new udp flow rather than the absolute 'jiffies' value. If it were not for the presence of IPS_CONFIRMED, __nf_conntrack_find_get() would have skipped the entry. Theory is that we did hit following race: cpu x cpu y cpu z found entry E found entry E E is expired <preemption> nf_ct_delete() return E to rcu slab init_conntrack E is re-inited, ct->status set to 0 reply tuplehash hnnode.pprev stores hash value. cpu y found E right before it was deleted on cpu x. E is now re-inited on cpu z. cpu y was preempted before checking for expiry and/or confirm bit. ->refcnt set to 1 E now owned by skb ->timeout set to 30000 If cpu y were to resume now, it would observe E as expired but would skip E due to missing CONFIRMED bit. nf_conntrack_confirm gets called sets: ct->status |= CONFIRMED This is wrong: E is not yet added to hashtable. cpu y resumes, it observes E as expired but CONFIRMED: <resumes> nf_ct_expired() -> yes (ct->timeout is 30s) confirmed bit set. cpu y will try to delete E from the hashtable: nf_ct_delete() -> set DYING bit __nf_ct_delete_from_lists Even this scenario doesn't guarantee a crash: cpu z still holds the table bucket lock(s) so y blocks: wait for spinlock held by z CONFIRMED is set but there is no guarantee ct will be added to hash: "chaintoolong" or "clash resolution" logic both skip the insert step. reply hnnode.pprev still stores the hash value. unlocks spinlock return NF_DROP <unblocks, then crashes on hlist_nulls_del_rcu pprev> In case CPU z does insert the entry into the hashtable, cpu y will unlink E again right away but no crash occurs. Without 'cpu y' race, 'garbage' hlist is of no consequence: ct refcnt remains at 1, eventually skb will be free'd and E gets destroyed via: nf_conntrack_put -> nf_conntrack_destroy -> nf_ct_destroy. To resolve this, move the IPS_CONFIRMED assignment after the table insertion but before the unlock. Pablo points out that the confirm-bit-store could be reordered to happen before hlist add resp. the timeout fixup, so switch to set_bit and before_atomic memory barrier to prevent this. It doesn't matter if other CPUs can observe a newly inserted entry right before the CONFIRMED bit was set: Such event cannot be distinguished from above "E is the old incarnation" case: the entry will be skipped. Also change nf_ct_should_gc() to first check the confirmed bit. The gc sequence is: 1. Check if entry has expired, if not skip to next entry 2. Obtain a reference to the expired entry. 3. Call nf_ct_should_gc() to double-check step 1. nf_ct_should_gc() is thus called only for entries that already failed an expiry check. After this patch, once the confirmed bit check pas ---truncated---

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:9kernel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-debug5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-debug-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-debug-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-debug-devel-matched5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-debug-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-debug-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-debug-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-devel-matched5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-64k-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:10kernel-abi-stablelists6.12.0-55.30.1.el10_0ALSA-2025:15005
AlmaLinux:9kernel-abi-stablelists5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-cross-headers5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug-devel-matched5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-debug-uki-virt5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-devel-matched5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:10kernel-doc6.12.0-55.30.1.el10_0ALSA-2025:15005
AlmaLinux:9kernel-doc5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-headers5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-debug5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-debug-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-debug-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-debug-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-debug-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-debug-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-64k-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-debug5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-debug-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-debug-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-debug-kvm5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-debug-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-debug-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-debug-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-kvm5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-rt-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-tools5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-tools-libs5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-tools-libs-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-uki-virt5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-uki-virt-addons5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-zfcpdump5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-zfcpdump-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-zfcpdump-devel5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-zfcpdump-devel-matched5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-zfcpdump-modules5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-zfcpdump-modules-core5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9kernel-zfcpdump-modules-extra5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9libperf5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9perf5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9python3-perf5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9rtla5.14.0-570.49.1.el9_6ALSA-2025:16880
AlmaLinux:9rv5.14.0-570.49.1.el9_6ALSA-2025:16880
Debian:12linux6.1.147-1DEBIAN-CVE-2025-38472
Debian:13linux6.12.41-1DEBIAN-CVE-2025-38472
Debian:13linux6.12.41-1DSA-5975-1
Debian:14linux6.16.3-1DEBIAN-CVE-2025-38472
Rocky Linux:10kernel0:6.12.0-55.30.1.el10_0RLSA-2025:15005
Rocky Linux:9kernel0:5.14.0-570.49.1.el9_6RLSA-2025:16880
Ubuntu:24.04:LTSlinux6.8.0-100.100UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-aws6.8.0-1046.49UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-aws-6.146.14.0-1017.17~24.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-aws-6.146.14.0-1017.17~24.04.1USN-7879-3
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1046.49~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-azure6.8.0-1046.52UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-azure-6.146.14.0-1017.17~24.04.1USN-7934-1
Ubuntu:24.04:LTSlinux-azure-6.146.14.0-1017.17~24.04.1UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1051.57~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-azure-fde6.8.0-1046.53UBUNTU-CVE-2025-38472
Ubuntu:25.10linux-azure-fdeno fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-azure-fde-6.86.8.0-1046.53~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-azure-nvidiano fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-gcp6.8.0-1047.50UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-gcp-6.146.14.0-1020.21~24.04.1USN-7879-4
Ubuntu:24.04:LTSlinux-gcp-6.146.14.0-1020.21~24.04.1UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1047.50~22.04.2UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-gke6.8.0-1043.48UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1030.33UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-hwe-6.146.14.0-36.36~24.04.1USN-7879-1
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-100.100~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-ibm6.8.0-1044.44UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1044.44~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-intelno fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-100.100.1UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-100.100.1~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1046.49UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1046.49~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1046.49.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-nvidia-tegra6.8.0-1020.20UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-oem-6.146.14.0-1016.16UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-oem-6.146.14.0-1016.16USN-7880-1
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-oracle6.8.0-1043.44UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-oracle-6.146.14.0-1017.17~24.04.1USN-7879-3
Ubuntu:24.04:LTSlinux-oracle-6.146.14.0-1017.17~24.04.1UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1043.44~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-raspi6.8.0-1047.51UBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-riscv-6.146.14.0-36.36.1~24.04.1UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-riscv-6.86.8.0-100.100~22.04.1UBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2025-38472
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2025-38472
Ubuntu:24.04:LTSlinux-xilinx6.8.0-1023.24UBUNTU-CVE-2025-38472

Affected products (as reported)

VendorProductVersions
Linux Linux 1397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 – before a47ef874189d47f934d0809ae738886307c0ea221397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 – before 76179961c423cd698080b5e4d5583cf7f4fcdde91397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 – before fc38c249c622ff5e3011b8845fd49dbfd9289afc1397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 – before 938ce0e8422d3793fe30df2ed0e37f6bc05983791397af5bfd7d32b0cf2adb70a78c9a9e8f11d912 – before 2d72afb340657f03f7261e9243b44457a9228ac7594cea2c09f7cd440d1ee1c4547d5bc6a646b0e45.18.13 – before 5.19
Linux Linux 5.19

References