In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_ct: bail out on template ct in get eval
I noticed this issue while looking at a historic syzbot report [1].
A rule like the one below is enough to trigger the bug:
table ip t { chain pre { type filter hook prerouting priority raw; ct zone set 1 ct original saddr 1.2.3.4 accept } }
The first expression attaches a per-cpu template ct via nft_ct_set_zone_eval() (nf_ct_tmpl_alloc -> kzalloc, tuple is all zero, nf_ct_l3num(ct) == 0). The next expression then calls nft_ct_get_eval() on the same skb, treats the template as a real ct and hits the 16-byte memcpy path. With dreg at NFT_REG32_15 this overflows past struct nft_regs on the kernel stack; with smaller dreg values it silently clobbers adjacent registers.
Reject template ct at the eval entry and in nft_ct_get_fast_eval(), mirroring the check nft_ct_set_eval() already has. Additionally, bound the address copy in NFT_CT_SRC / NFT_CT_DST by priv->len instead of by nf_ct_l3num(ct): nf_ct_get_tuple() zeroes the tuple before pkt_to_tuple() fills in only the protocol-relevant leading bytes, so the trailing bytes of tuple->{src,dst}.u3.all are well-defined zero. priv->len is validated at rule load, so the copy size is now bounded by the destination register rather than by an untrusted field on the conntrack.
[1]: https://syzkaller.appspot.com/bug?id=389cf09cb72926114fce90dc85a2c3231dcb647c
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade perf6.12-debuginfoUpgrade kernel6.12-headersUpgrade kernel6.18-modules-extraUpgrade kernel6.18-toolsUpgrade perf6.18Upgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-tools-develUpgrade kernel6.12-toolsUpgrade bpftool6.18Upgrade kernel6.18-headersUpgrade kernel6.18Upgrade kernel6.18-modules-extra-commonUpgrade python3-perf6.12Upgrade microvm-kernel6.18Upgrade kernel6.12Upgrade kernel6.12-develUpgrade python3-perf6.18-debuginfoUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.12-modules-extraUpgrade kernel6.18-debuginfo-common-aarch64Upgrade perf6.12Upgrade kernel6.12-tools-debuginfoUpgrade kernel6.18-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade python3-perf6.18Upgrade perf6.18-debuginfoUpgrade bpftool6.12Upgrade python3-perf6.12-debuginfoUpgrade kernel6.18-tools-develUpgrade kernel6.18-tools-debuginfoUpgrade bpftool6.18-debuginfoUpgrade bpftool6.12-debuginfoUpgrade kernel6.18-develUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-debuginfoUpgrade kernel-livepatch-6.12.94-123.174Upgrade kernel-livepatch-6.18.36-69.134 | Jul 21, 2026 | Jun 25, 2026 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Jun 25, 2026 |
| Ubuntu | — | Upgrade linux-image-azure-lts-26.04Upgrade linux-image-realtime-64kUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-gke-hwe-26.04Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-raspi-7.0Upgrade linux-image-7.0.0-1011-oracle-64kUpgrade linux-image-7.0.0-31-genericUpgrade linux-image-7.0.0-1006-gke-64kUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-oem-26.04bUpgrade linux-image-7.0.0-1013-oemUpgrade linux-image-7.0.0-1006-gkeUpgrade linux-image-generic-7.0Upgrade linux-image-generic-64k-7.0Upgrade linux-image-7.0.0-1014-azureUpgrade linux-image-7.0.0-31-generic-64kUpgrade linux-image-aws-64kUpgrade linux-image-oracle-64kUpgrade linux-image-7.0.0-1019-raspiUpgrade linux-image-gcp-7.0Upgrade linux-image-virtual-7.0Upgrade linux-image-virtualUpgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-7.0.0-1013-ibmUpgrade linux-image-realtimeUpgrade linux-image-7.0.0-1019-raspi-realtimeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gkeUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-gcpUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-awsUpgrade linux-image-oracleUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-azure-7.0Upgrade linux-image-ibmUpgrade linux-image-raspiUpgrade linux-image-oem-7.0Upgrade linux-image-nvidiaUpgrade linux-image-nvidia-bosUpgrade linux-image-aws-64k-7.0Upgrade linux-image-gcp-64kUpgrade linux-image-gke-64kUpgrade linux-image-7.0.0-2018-nvidia-bos-64kUpgrade linux-image-7.0.0-2018-nvidia-bosUpgrade linux-image-nvidia-64k-7.0Upgrade linux-image-gke-7.0Upgrade linux-image-nvidia-64kUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-7.0.0-1018-nvidia-64kUpgrade linux-image-oracle-7.0Upgrade linux-image-ibm-7.0Upgrade linux-image-nvidia-7.0Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-oem-26.04aUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-realtime-hwe-26.04Upgrade linux-image-oem-26.04Upgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-generic-64kUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-gke-64k-7.0Upgrade linux-image-7.0.0-1018-nvidiaUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-genericUpgrade linux-image-aws-7.0Upgrade linux-image-7.0.0-31-realtimeUpgrade linux-image-7.0.0-1012-awsUpgrade linux-image-azureUpgrade linux-image-7.0.0-1012-aws-64kUpgrade linux-image-7.0.0-31-realtime-64kUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-raspi-realtime-7.0Upgrade linux-image-realtime-7.0 | Sep 14, 2026 | Sep 7, 2026 |
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