net/sched: Handle TC_ACT_REDIRECT from qdisc filter chains
In the Linux kernel, the following vulnerability has been resolved: net/sched: Handle TC_ACT_REDIRECT from qdisc filter chains When a TC filter attached to a qdisc filter chain returns TC_ACT_REDIRECT (ex: via an eBPF program calling bpf_redirect() or an act_bpf action), the redirect was silently lost i.e no qdisc classify function handled TC_ACT_REDIRECT, so the packet fell through the switch and was enqueued normally instead of being redirected. This has been broken since bpf_redirect() was introduced for TC in commit 27b29f63058d ("bpf: add bpf_redirect() helper"). We got lucky for a long time because bpf_net_context was a per-CPU variable that was always available. commit 401cb7dae813 ("net: Reference bpf_redirect_info via task_struct on PREEMPT_RT.") turned bpf_net_context into a task_struct member that is only set up by explicit callers. Without a caller setting it up, bpf_redirect() itself crashes with a NULL pointer dereference in bpf_net_ctx_get_ri(). However, even with bpf_net_context available, TC_ACT_REDIRECT from qdisc filter chains cannot be honored without adding skb_do_redirect() calls to every qdisc classify function, which would require changes across net/sched/. Isolate it to ebpf core where it belongs. Instead, add a tcf_classify_qdisc() inline helper in pkt_cls.h, as a wrapper around tcf_classify() for use by qdisc classify functions and tcf_qevent_handle(). When the classify verdict is TC_ACT_REDIRECT, the wrapper converts it to TC_ACT_SHOT, dropping the
CVE-2026-68441
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: cve:CVE-2026-68441
Linux
Source reference: /containers/cna/affected/0/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
Linux
Source reference: /containers/cna/affected/1/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"lessThan": "98ca831065c4d20baf97dc9e232777dc47a2b923",
"versionType": "git"
},
{
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"lessThan": "636658e50b5c6a2c93413a9fa6d9da768dbfdaf2",
"versionType": "git"
},
{
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"lessThan": "9cbad9c8125f5fe377c0800ab08f7196eab44456",
"versionType": "git"
},
{
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"lessThan": "c8fd74445e86f88096d2f6cf0f9e4d54d8ed1781",
"versionType": "git"
},
{
"status": "affected",
"version": "27b29f63058d26c6c1742f1993338280d5a41dc6",
"lessThan": "ec48b3be2c8595dd290be883dbd4fb8b2f9f5d5e",
"versionType": "git"
}
],
"programFiles": [
"include/net/pkt_cls.h",
"net/sched/cls_api.c",
"net/sched/sch_cake.c",
"net/sched/sch_drr.c",
"net/sched/sch_dualpi2.c",
"net/sched/sch_ets.c",
"net/sched/sch_fq_codel.c",
"net/sched/sch_fq_pie.c",
"net/sched/sch_hfsc.c",
"net/sched/sch_htb.c",
"net/sched/sch_multiq.c",
"net/sched/sch_prio.c",
"net/sched/sch_qfq.c",
"net/sched/sch_sfb.c",
"net/sched/sch_sfq.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "4.4"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "4.4",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.6.160",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.114",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver",
"lessThanOrEqual": "7.1.*"
},
{
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"include/net/pkt_cls.h",
"net/sched/cls_api.c",
"net/sched/sch_cake.c",
"net/sched/sch_drr.c",
"net/sched/sch_dualpi2.c",
"net/sched/sch_ets.c",
"net/sched/sch_fq_codel.c",
"net/sched/sch_fq_pie.c",
"net/sched/sch_hfsc.c",
"net/sched/sch_htb.c",
"net/sched/sch_multiq.c",
"net/sched/sch_prio.c",
"net/sched/sch_qfq.c",
"net/sched/sch_sfb.c",
"net/sched/sch_sfq.c"
],
"defaultStatus": "affected"
}
]- Related CVEs
- CVE-2026-68441
Source reference:
/cveMetadata/cveId
Publisher severity
No explicit severity was provided.
- Event
- #46481 · Revision 1
- Added to Heist Feed
- Publisher date