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---
CVSS Details
- CVSS 3.1 Base Score: 9.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-64k-debug-modules-extraUpgrade python3-perfUpgrade kernel-zfcpdump-modulesUpgrade kernel-modulesUpgrade kernel-64k-devel-matchedUpgrade kernel-rt-modulesUpgrade kernel-rt-64k-debug-coreUpgrade kernel-devel-matchedUpgrade kernel-64k-coreUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-develUpgrade kernel-rt-debug-kvmUpgrade kernel-headersUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-64k-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-debug-modules-coreUpgrade perfUpgrade kernel-rt-debug-develUpgrade kernel-docUpgrade rtlaUpgrade kernel-rt-debug-modules-extraUpgrade kernel-uki-virtUpgrade kernel-modules-coreUpgrade kernel-64k-debug-modules-extraUpgrade kernel-rt-64k-modulesUpgrade kernel-tools-libs-develUpgrade kernel-abi-stablelistsUpgrade kernel-zfcpdump-develUpgrade kernel-rt-64k-debug-modulesUpgrade libperfUpgrade kernel-64k-debugUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-modules-coreUpgrade kernel-rt-64k-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-64k-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-64k-debug-modules-coreUpgrade kernel-debug-uki-virtUpgrade kernel-debug-modules-extraUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-rt-modules-extraUpgrade kernel-rtUpgrade kernel-debug-modulesUpgrade kernel-zfcpdumpUpgrade kernel-64k-modules-extraUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-debug-coreUpgrade kernel-debugUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-debugUpgrade kernel-rt-64k-coreUpgrade kernel-rt-coreUpgrade kernel-64k-debug-develUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-cross-headersUpgrade rvUpgrade kernel-coreUpgrade kernel-modules-extraUpgrade kernel-rt-64k-debug-develUpgrade kernel-rt-debug-coreUpgrade kernel-rt-kvmUpgrade kernel-develUpgrade kernel-toolsUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-64k-modules-coreUpgrade kernel-rt-64k-develUpgrade kernel-rt-develUpgrade kernel-rt-64k-modules-coreUpgrade kernel-64kUpgrade kernel-rt-64kUpgrade kernel-debug-modules-coreUpgrade kernel-64k-debug-coreUpgrade kernel-64k-devel | Oct 2, 2025 | Sep 29, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel6.12-libbpfUpgrade bpftoolUpgrade kernel6.12-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool6.12Upgrade kernel-toolsUpgrade bpftool-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel6.12-libbpf-staticUpgrade kernel6.12-libbpf-debuginfoUpgrade python3-perf6.12-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel6.12-tools-debuginfoUpgrade kernel-libbpf-debuginfoUpgrade perf6.12Upgrade kernel-libbpf-staticUpgrade kernel-livepatch-6.1.147-172.266Upgrade kernel6.12-develUpgrade kernel-modules-extraUpgrade kernel-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade kernel-libbpf-develUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-modules-extraUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-livepatch-6.12.40-63.114Upgrade kernel6.12-tools-develUpgrade kernel6.12Upgrade perf-debuginfoUpgrade kernel-tools-develUpgrade perf6.12-debuginfoUpgrade kernel6.12-toolsUpgrade kernel-tools-debuginfoUpgrade kernel-develUpgrade kernel6.12-debuginfoUpgrade python3-perf-debuginfoUpgrade perfUpgrade python3-perfUpgrade kernel-libbpfUpgrade bpftool6.12-debuginfoUpgrade python3-perf6.12Upgrade kernel-headersUpgrade kernelUpgrade kernel6.12-headers | Sep 16, 2025 | Jul 28, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Jul 31, 2025 | Jul 31, 2025 |
| Oracle_linux | — | Upgrade kernel | Sep 5, 2025 | Jul 28, 2025 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Jul 31, 2025 | Jul 28, 2025 |
| Rocky_linux | — | Upgrade kernel-debug-devel-matchedUpgrade libperf-debuginfoUpgrade kernel-rt-modulesUpgrade kernel-rtUpgrade libperfUpgrade kernel-rt-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debug-modules-extraUpgrade kernel-devel-matchedUpgrade kernel-toolsUpgrade kernel-zfcpdump-modulesUpgrade rvUpgrade kernel-rt-debug-coreUpgrade kernel-rt-debuginfoUpgrade kernel-tools-libs-develUpgrade kernel-uki-virt-addonsUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-kvmUpgrade kernel-debuginfo-common-s390xUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rt-modules-coreUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-modules-extraUpgrade kernel-modulesUpgrade kernel-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-tools-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-debug-develUpgrade kernel-rt-debugUpgrade kernel-rt-debug-kvmUpgrade perfUpgrade kernel-zfcpdump-debuginfoUpgrade rtlaUpgrade kernel-modules-coreUpgrade kernel-debug-uki-virtUpgrade kernel-debugUpgrade kernel-rt-coreUpgrade kernel-uki-virtUpgrade kernel-debug-coreUpgrade kernel-zfcpdump-develUpgrade python3-perfUpgrade kernel-debug-debuginfoUpgrade kernel-zfcpdumpUpgrade kernel-debuginfoUpgrade kernel-debug-modules-coreUpgrade kernel-debug-modulesUpgrade perf-debuginfoUpgrade kernel-rt-develUpgrade kernel-rt-debug-debuginfoUpgrade kernel-develUpgrade python3-perf-debuginfoUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-debug-devel | Feb 5, 2026 | Oct 10, 2025 |
| Suse | — | Upgrade cluster-md-kmp-rtUpgrade kernel-azureUpgrade kselftests-kmp-64kbUpgrade kernel-rt-develUpgrade kernel-source-vanillaUpgrade ocfs2-kmp-defaultUpgrade kselftests-kmp-azureUpgrade kernel-symsUpgrade kernel-rt_debug-develUpgrade kernel-64kb-develUpgrade gfs2-kmp-rtUpgrade dlm-kmp-64kbUpgrade dtb-lgUpgrade reiserfs-kmp-64kbUpgrade kernel-source-azureUpgrade kernel-rt-livepatchUpgrade kernel-default-optionalUpgrade dtb-apmUpgrade kernel-default-livepatchUpgrade kernel-kvmsmallUpgrade kernel-devel-rtUpgrade kernel-develUpgrade kernel-azure-develUpgrade kernel-default-baseUpgrade kernel-docsUpgrade kernel-docs-htmlUpgrade dtb-amdUpgrade dtb-hisiliconUpgrade kernel-debug-vdsoUpgrade dtb-renesasUpgrade kernel-syms-rtUpgrade kernel-debug-develUpgrade dtb-socionextUpgrade kernel-azure-extraUpgrade ocfs2-kmp-azureUpgrade kernel-default-livepatch-develUpgrade dtb-armUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-rt-extraUpgrade dlm-kmp-defaultUpgrade cluster-md-kmp-64kbUpgrade dlm-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade dtb-nvidiaUpgrade dtb-sprdUpgrade dtb-broadcomUpgrade kernel-defaultUpgrade kselftests-kmp-rtUpgrade dlm-kmp-azureUpgrade dtb-amlogicUpgrade kernel-rt-vdsoUpgrade dtb-marvellUpgrade kernel-64kb-extraUpgrade kernel-obs-buildUpgrade kernel-debugUpgrade dtb-appleUpgrade kernel-64kb-optionalUpgrade kselftests-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kernel-azure-vdsoUpgrade cluster-md-kmp-defaultUpgrade kernel-rt_debugUpgrade gfs2-kmp-defaultUpgrade reiserfs-kmp-defaultUpgrade dtb-amazonUpgrade dtb-allwinnerUpgrade reiserfs-kmp-azureUpgrade kernel-macrosUpgrade kernel-syms-azureUpgrade kernel-default-vdsoUpgrade ocfs2-kmp-64kbUpgrade kernel-source-rtUpgrade kernel-64kbUpgrade dtb-rockchipUpgrade dtb-mediatekUpgrade kernel-azure-optionalUpgrade kernel-kvmsmall-develUpgrade dtb-exynosUpgrade dtb-caviumUpgrade dtb-alteraUpgrade kernel-obs-qaUpgrade kernel-default-base-rebuildUpgrade ocfs2-kmp-rtUpgrade cluster-md-kmp-azureUpgrade kernel-zfcpdumpUpgrade kernel-sourceUpgrade kernel-rt-optionalUpgrade kernel-rtUpgrade kernel-devel-azureUpgrade gfs2-kmp-azureUpgrade gfs2-kmp-64kbUpgrade dtb-xilinxUpgrade dtb-qcomUpgrade dtb-freescaleUpgrade kernel-default-extraUpgrade kernel-default-devel | Dec 5, 2025 | Sep 30, 2025 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-aws-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-oracleUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-xilinx-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-azureUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.14.0-36-generic-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-6.14.0-1016-oemUpgrade linux-image-6.14.0-1017-aws-64kUpgrade linux-image-6.14.0-1017-azureUpgrade linux-image-lowlatency-6.8Upgrade linux-image-6.14.0-1017-oracle-64kUpgrade linux-image-raspiUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-generic-64k-6.14Upgrade linux-image-oem-22.04bUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-6.8Upgrade linux-image-aws-6.14Upgrade linux-image-kvmUpgrade linux-image-azure-lts-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-virtual-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-virtual-6.14Upgrade linux-image-awsUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-generic-6.14Upgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-gcp-64k-6.14Upgrade linux-image-oracle-6.8Upgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-oracle-64k-6.14Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.14.0-36-genericUpgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-ibmUpgrade linux-image-ibm-classicUpgrade linux-image-raspi-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oem-6.14Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-aws-64k-6.14Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.14.0-1020-gcpUpgrade linux-image-gcp-64kUpgrade linux-image-oracle-6.14Upgrade linux-image-generic-64k-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.14.0-1020-gcp-64kUpgrade linux-image-fips-6.8Upgrade linux-image-6.14.0-1017-oracleUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-1046-awsUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-azure-fipsUpgrade linux-image-oem-22.04dUpgrade linux-image-xilinxUpgrade linux-image-oem-22.04cUpgrade linux-image-azure-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-6.14.0-1017-awsUpgrade linux-image-nvidiaUpgrade linux-image-fipsUpgrade linux-image-6.8.0-1046-azureUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gkeUpgrade linux-image-oracle-64kUpgrade linux-image-oem-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-azure-6.14Upgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-raspi-6.14Upgrade linux-image-6.14.0-1016-realtimeUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-realtime-6.14Upgrade linux-image-realtimeUpgrade linux-image-oem-24.04aUpgrade linux-image-oem-22.04Upgrade linux-image-gke-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-aws-64kUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-gke-64k-6.8Upgrade linux-image-gcpUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.14.0-1018-raspiUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-gcp-6.14Upgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-lowlatency-64kUpgrade linux-image-gkeopUpgrade linux-image-genericUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-generic-64k | Jul 31, 2025 | Jul 28, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Aug 20, 2025 | Jul 28, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub