CVE-2026-74621

net/sched: act_ct: fix sk_buff leak when the header checks reject a packet

HIGH
7.5
CVSS Score
Published: August 22, 2026 at 03:32 PM UTC
Updated: October 16, 2026 at 08:17 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.5
Exploit prediction
EPSS 0.5%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: net/sched: act_ct: fix sk_buff leak when the header checks reject a packet tcf_ct_handle_fragments() runs its header sanity checks before handing anything to the defragmentation engine: if (family == NFPROTO_IPV4) err = tcf_ct_ipv4_is_fragment(skb, &frag); else err = tcf_ct_ipv6_is_fragment(skb, &frag); if (err || !frag) return err; tcf_ct_ipv4_is_fragment() returns -EINVAL or -ENOMEM; tcf_ct_ipv6_is_fragment() adds -EPROTO when ipv6_find_hdr() fails. None of them frees or queues the skb, so on that path the caller still owns it. tcf_ct_act() however funnels every non-zero return into the ownership-transfer exit: err = tcf_ct_handle_fragments(net, skb, family, p->zone, &defrag); if (err) goto out_frag; ... out_frag: if (err != -EINPROGRESS) tcf_action_inc_drop_qstats(&c->common); return TC_ACT_CONSUMED; TC_ACT_CONSUMED means the action took ownership of the skb, so no caller frees it - sch_handle_ingress(), sch_handle_egress() and tcf_qevent_handle() all deliberately skip the free for that verdict. The skb is therefore orphaned: one sk_buff plus its data buffer is leaked per malformed packet, unbounded. Note the drop counter is already incremented for these errors, so the statistics claim a drop that never happens. Three different ownership states reach out_frag: today - the skb may be queued by the defrag engine (-EINPROGRESS), already freed by nf_ct_handle_fragments(), or still owned by us. Tell the caller which of those it is, and free the packet ourselves in the last case, which restores the TC_ACT_SHOT behaviour that predated the Fixes: commit. Reproduced on v7.2-rc6 with a 54-byte frame carrying a 40-byte IPv6 header with nexthdr = 0 (hop-by-hop) and nothing after it, on a clsact ingress chain with "action ct". kmemleak reports one leaked 232-byte skbuff_head_cache object plus its 704-byte data buffer per packet; with this patch it reports none.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

0b5b831122fc3789fff75be433ba3e4dd7b779d4172ba7d46c202e679f3ccb10264c67416aaeb1c43f14b377d01d8357eba032b4cabc8c1149b458b65.15.1486.1.756.6.146.7.26.873f7da5fd124f2cda9161e2e46114915e6e82e97f5346df0591d10bc948761ca854b1fae6d2ef441
Vendor states this is fixed in 23e97d594ddd0153020c506d5041048fbde1beb4 (fixed)
Vendor states this is fixed in 439d3e404f9d5e515911cc8132cde198b337c19e (fixed)
Vendor states this is fixed in 47d99828591d0fe8be4b9c8992ff3b8e47968db9 (fixed)
Vendor states this is fixed in 737873a59905a54ca0d2d127ef882f3f88bf4379 (fixed)
Vendor states this is fixed in 8a7ed561671aa6a911a2de99e59ef670a4d0b1df (fixed)
Vendor states this is fixed in b47bb899e04b5407c5a63fe88d4b6676586a6e84 (fixed)
Vendor states this is fixed in b5dbecc2016e1692fd1c2532af9c41ba729cb747 (fixed)
Vendor states this is fixed in 5.15.217 (unaffected)
Vendor states this is fixed in 6.1.184 (unaffected)
Vendor states this is fixed in 6.12.104 (unaffected)
Vendor states this is fixed in 6.18.45 (unaffected)
Vendor states this is fixed in 6.6.152 (unaffected)
Vendor states this is fixed in 6.8 (unaffected)
Vendor states this is fixed in 7.1.9 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

SSVC — Action Prioritization

SSVCNo known exploitAutomatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.5HIGHLinux
Vector?

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card