CVE-2026-22994: bpf: Fix reference count leak in bpf_prog_test_run_xdp()
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix reference count leak in bpf_prog_test_run_xdp()
syzbot is reporting
unregister_netdevice: waiting for sit0 to become free. Usage count = 2
problem. A debug printk() patch found that a refcount is obtained at
xdp_convert_md_to_buff() from bpf_prog_test_run_xdp().
According to commit ec94670fcb3b ("bpf: Support specifying ingress via
xdp_md context in BPF_PROG_TEST_RUN"), the refcount obtained by
xdp_convert_md_to_buff() will be released by xdp_convert_buff_to_md().
Therefore, we can consider that the error handling path introduced by
commit 1c1949982524 ("bpf: introduce frags support to
bpf_prog_test_run_xdp()") forgot to call xdp_convert_buff_to_md().
Security readout for executives and security teams
Plain-English summary
A Linux kernel error path can retain a network-device reference after an XDP BPF program test. This may prevent a network interface from being released, creating an availability or operational cleanup problem. The supplied sources do not establish broader security impact, required access, or severity.
Executive priority
Track and remediate through normal kernel patching, escalating where affected BPF/XDP functionality and network-device lifecycle operations are used. Emergency response is not justified by the supplied evidence because severity and exploitation prerequisites remain unestablished and active exploitation is not reported.
Technical view
The fragmented-packet error path in bpf_prog_test_run_xdp() omits xdp_convert_buff_to_md(), which normally releases a reference acquired by xdp_convert_md_to_buff(). The resulting reference-count leak can leave a network device busy during unregister operations. Linux stable commits are cited as fixes, but the supplied version data does not clearly map each fix to a release.
Likely exposure
Exposure is limited to Linux kernels containing the regression introduced by commit 1c1949982524 and exercising the affected BPF_PROG_TEST_RUN XDP fragmented-packet error path. The bundle lists several versions but provides ambiguous fixed-version boundaries. Required privileges, remote reachability, and affected distribution packages are not established.
Exploitation context
The bundle reports syzbot discovery and no CISA KEV listing. It provides no evidence of active exploitation, public weaponization, remote exploitation, privilege escalation, or data compromise. Demonstrated impact is a leaked network-device reference that can obstruct device unregistration.
Researcher notes
The defect is a missing cleanup conversion on an error path introduced with XDP fragment support. The observable report mentions sit0 remaining at usage count two. Assess backports by code lineage and fix-commit presence, not version strings alone; the supplied affected-version representation is internally unclear.
Mitigation direction
Identify kernel builds containing the introducing commit or its backport.
Update to a vendor-supported kernel incorporating the applicable cited stable fix.
Consult distribution and appliance advisories for exact fixed package versions.
Prioritize systems that permit BPF/XDP testing or frequently reconfigure network devices.
Validation and detection
Record running kernel and vendor package versions across Linux assets.
Check vendor changelogs for CVE-2026-22994 or the cited fix commit.
Confirm upgraded kernels are active after required reboots.
Monitor logs for network-device unregistration waits or persistent usage counts.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-22994 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
1ADP providers
7Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Jan 23, 2026, 15:24 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.