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-develUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-modules-extraUpgrade kernel-toolsUpgrade kernel-cross-headersUpgrade kernel-rt-64k-debugUpgrade kernel-rt-kvmUpgrade kernel-rt-64k-coreUpgrade kernel-debug-modulesUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-64k-modules-extraUpgrade kernel-debugUpgrade kernel-zfcpdumpUpgrade kernel-rt-coreUpgrade kernel-rt-debug-coreUpgrade kernel-64k-develUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-64k-debug-modulesUpgrade kernel-develUpgrade kernel-64k-modulesUpgrade kernel-64kUpgrade kernel-rt-64k-debug-develUpgrade kernel-64k-debug-coreUpgrade kernel-rt-64k-develUpgrade kernel-debug-coreUpgrade kernel-rt-64kUpgrade kernel-rtUpgrade kernel-rt-debugUpgrade kernel-rt-debug-modulesUpgrade kernelUpgrade kernel-64k-modules-coreUpgrade kernel-tools-libsUpgrade rvUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-debug-modules-extraUpgrade kernel-64k-debug-modules-coreUpgrade kernel-coreUpgrade kernel-modules-extraUpgrade kernel-debug-modules-coreUpgrade kernel-rt-64k-modules-coreUpgrade kernel-debug-uki-virtUpgrade kernel-64k-debug-develUpgrade kernel-rt-modulesUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-debug-develUpgrade rtlaUpgrade kernel-docUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-tools-libs-develUpgrade kernel-rt-64k-modulesUpgrade kernel-debug-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-64k-modules-extraUpgrade kernel-64k-devel-matchedUpgrade kernel-rt-64k-debug-coreUpgrade kernel-64k-coreUpgrade kernel-modulesUpgrade kernel-rt-debug-modules-coreUpgrade kernel-abi-stablelistsUpgrade perfUpgrade kernel-modules-coreUpgrade kernel-rt-modules-coreUpgrade kernel-devel-matchedUpgrade kernel-debug-develUpgrade kernel-uki-virtUpgrade libperfUpgrade kernel-headersUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-rt-debug-modules-extraUpgrade kernel-64k-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-64k-debugUpgrade python3-perf | Oct 2, 2025 | Sep 29, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel6.12-tools-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-livepatch-6.1.147-172.266Upgrade bpftool-debuginfoUpgrade python3-perf6.12-debuginfoUpgrade kernel6.12-libbpfUpgrade kernel6.12-libbpf-debuginfoUpgrade perf6.12Upgrade kernel-debuginfo-common-aarch64Upgrade bpftoolUpgrade kernel6.12-libbpf-develUpgrade kernel-toolsUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool6.12Upgrade kernel6.12-libbpf-staticUpgrade kernel-libbpf-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel6.12-debuginfo-common-aarch64Upgrade python3-perfUpgrade kernel6.12-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel6.12-modules-extraUpgrade kernel-develUpgrade perf6.12-debuginfoUpgrade kernel-livepatch-6.12.40-63.114Upgrade kernel6.12-tools-develUpgrade kernel-tools-develUpgrade kernel6.12Upgrade kernel-modules-extraUpgrade kernel6.12-headersUpgrade kernel6.12-develUpgrade kernel-libbpfUpgrade bpftool6.12-debuginfoUpgrade kernelUpgrade kernel6.12-modules-extra-commonUpgrade python3-perf6.12Upgrade python3-perf-debuginfoUpgrade perfUpgrade kernel-libbpf-develUpgrade kernel-headersUpgrade kernel6.12-toolsUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-debuginfoUpgrade perf-debuginfo | 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 | — | No solution existsUpgrade kernel-rtUpgrade kernel | Jul 31, 2025 | Jul 28, 2025 |
| Rocky_linux | — | Upgrade kernel-rt-develUpgrade python3-perfUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdumpUpgrade kernel-debug-coreUpgrade kernel-debug-modulesUpgrade kernel-debug-modules-coreUpgrade kernel-debuginfoUpgrade kernel-zfcpdump-develUpgrade kernel-tools-debuginfoUpgrade kernelUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-debug-debuginfoUpgrade perf-debuginfoUpgrade kernel-debug-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debug-develUpgrade rtlaUpgrade kernel-tools-libsUpgrade kernel-modulesUpgrade kernel-modules-extraUpgrade kernel-rt-debugUpgrade kernel-modules-coreUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-uki-virtUpgrade kernel-debug-uki-virtUpgrade kernel-rt-coreUpgrade kernel-debugUpgrade kernel-rt-debug-develUpgrade kernel-develUpgrade kernel-rt-debug-kvmUpgrade perfUpgrade libperf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debug-modules-extraUpgrade kernel-debug-devel-matchedUpgrade kernel-toolsUpgrade kernel-rt-modules-coreUpgrade kernel-rt-debug-modules-coreUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-kvmUpgrade kernel-zfcpdump-coreUpgrade kernel-debuginfo-common-s390xUpgrade rvUpgrade kernel-zfcpdump-modules-coreUpgrade libperfUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-tools-libs-develUpgrade kernel-rtUpgrade kernel-rt-modules-extraUpgrade kernel-rt-modulesUpgrade kernel-rt-debuginfoUpgrade kernel-zfcpdump-devel-matched | Feb 5, 2026 | Oct 10, 2025 |
| Suse | — | Upgrade kernel-azure-optionalUpgrade kernel-obs-qaUpgrade ocfs2-kmp-defaultUpgrade kernel-rt_debug-develUpgrade kernel-64kb-develUpgrade gfs2-kmp-rtUpgrade dlm-kmp-64kbUpgrade kselftests-kmp-azureUpgrade kernel-symsUpgrade kernel-rtUpgrade ocfs2-kmp-rtUpgrade kernel-default-base-rebuildUpgrade cluster-md-kmp-azureUpgrade dtb-exynosUpgrade dtb-caviumUpgrade dtb-alteraUpgrade kernel-sourceUpgrade kernel-rt-optionalUpgrade kernel-kvmsmall-develUpgrade kernel-zfcpdumpUpgrade kernel-default-develUpgrade dtb-xilinxUpgrade dtb-qcomUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-rtUpgrade kernel-source-vanillaUpgrade kernel-rt-develUpgrade kernel-default-extraUpgrade kernel-64kbUpgrade kernel-source-rtUpgrade cluster-md-kmp-64kbUpgrade dlm-kmp-rtUpgrade dtb-armUpgrade kernel-rt_debugUpgrade ocfs2-kmp-azureUpgrade kernel-debug-vdsoUpgrade dtb-broadcomUpgrade dtb-nvidiaUpgrade dtb-amlogicUpgrade kernel-defaultUpgrade kernel-docs-htmlUpgrade kernel-rt-vdsoUpgrade dtb-socionextUpgrade dlm-kmp-azureUpgrade dtb-hisiliconUpgrade reiserfs-kmp-rtUpgrade dtb-renesasUpgrade kernel-debugUpgrade kernel-default-baseUpgrade dtb-sprdUpgrade kernel-debug-develUpgrade kernel-64kb-extraUpgrade kselftests-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-docsUpgrade kernel-default-livepatch-develUpgrade dlm-kmp-defaultUpgrade cluster-md-kmp-defaultUpgrade gfs2-kmp-defaultUpgrade dtb-appleUpgrade kernel-azure-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-livepatch-develUpgrade dtb-amdUpgrade kernel-64kb-optionalUpgrade kernel-obs-buildUpgrade reiserfs-kmp-defaultUpgrade dtb-marvellUpgrade kernel-azure-extraUpgrade kernel-rt-extraUpgrade kernel-rt_debug-vdsoUpgrade kernel-syms-rtUpgrade dtb-rockchipUpgrade dtb-amazonUpgrade dtb-allwinnerUpgrade gfs2-kmp-64kbUpgrade reiserfs-kmp-azureUpgrade ocfs2-kmp-64kbUpgrade kselftests-kmp-64kbUpgrade kernel-azureUpgrade dtb-mediatekUpgrade dtb-freescaleUpgrade kernel-syms-azureUpgrade kernel-default-vdsoUpgrade kernel-default-optionalUpgrade kernel-default-livepatchUpgrade kernel-develUpgrade kernel-azure-develUpgrade kernel-kvmsmallUpgrade kernel-devel-rtUpgrade kernel-macrosUpgrade dtb-lgUpgrade dtb-apmUpgrade kernel-source-azureUpgrade kernel-rt-livepatchUpgrade kernel-devel-azureUpgrade reiserfs-kmp-64kb | Dec 5, 2025 | Sep 30, 2025 |
| Ubuntu | — | Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-realtime-6.14Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gke-6.8Upgrade linux-image-6.14.0-1018-raspiUpgrade linux-image-realtimeUpgrade linux-image-oem-22.04Upgrade linux-image-oem-24.04aUpgrade linux-image-gke-64k-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-1051-azureUpgrade linux-image-aws-64kUpgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-virtualUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-intel-iotgUpgrade linux-image-oem-22.04dUpgrade linux-image-azure-6.8Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gkeUpgrade linux-image-xilinxUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-generic-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-6.14.0-1017-awsUpgrade linux-image-oem-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-gcp-6.14Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-gkeopUpgrade linux-image-genericUpgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-azure-6.14Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-raspi-6.14Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-fipsUpgrade linux-image-nvidiaUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-gcpUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-6.14.0-1016-realtimeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1046-azureUpgrade linux-image-nvidia-64kUpgrade linux-image-azureUpgrade linux-image-aws-lts-24.04Upgrade linux-image-aws-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-realtime-6.8.1Upgrade linux-image-azure-fips-6.8Upgrade linux-image-gke-64kUpgrade linux-image-aws-fipsUpgrade linux-image-awsUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-6.14.0-36-genericUpgrade linux-image-oracle-64k-6.14Upgrade linux-image-oracle-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-generic-6.14Upgrade linux-image-gcp-64k-6.14Upgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-aws-64k-6.14Upgrade linux-image-6.14.0-1020-gcpUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-6.14.0-1020-gcp-64kUpgrade linux-image-xilinx-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-aws-6.14Upgrade linux-image-kvmUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-virtual-6.14Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-oem-6.14Upgrade linux-image-6.14.0-1017-oracleUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.14.0-1017-oracle-64kUpgrade linux-image-6.14.0-1017-aws-64kUpgrade linux-image-6.14.0-1016-oemUpgrade linux-image-raspiUpgrade linux-image-lowlatency-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-64k-6.14Upgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-6.14.0-36-generic-64kUpgrade linux-image-6.14.0-1017-azureUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1046-awsUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-gcp-6.8Upgrade linux-image-virtual-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-oracle-6.14Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-raspi-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-ibm | 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