bpf: Reject legacy packet loads from callbacks

Summary

CVECVE-2026-98044
StatePUBLISHED
AssignerLinux
Source PriorityCVE Program / NVD first with legacy fallback
Published2026-09-25 11:17:33 UTC
Updated2026-10-21 13:21:20 UTC
DescriptionIn the Linux kernel, the following vulnerability has been resolved: bpf: Reject legacy packet loads from callbacks check_ld_abs() models a failed BPF_LD_ABS or BPF_LD_IND in a subprogram as an implicit return with R0 set to zero. It calls prepare_func_exit() to explore this synthesized path. When the load is reached directly from a synchronous callback, prepare_func_exit() enforces the callback return contract and marks R0 precise. R0 is not derived from a real instruction on this path, so precision backtracking reaches the callback call with R0 still requested and triggers the "callback unexpected regs" verifier bug. A privileged program loader can therefore cause a verifier warning and an -EFAULT BPF_PROG_LOAD. These legacy packet-load instructions are deprecated. Reject them from callbacks rather than complicating their implicit-return model. Check all active frames before constructing the implicit return so nested static subprograms cannot hide the callback context. Global functions are verified independently with a fresh frame zero, so an active-frame check cannot identify a global function called from a callback. Also check the complete subprogram call graph during stack-depth validation and reject a function containing a legacy load when any caller is a callback. This covers global and static descendants without making has_ld_abs transitive, preserving its per-function BTF return-type check. Ordinary uses outside callbacks remain supported.

Risk And Classification

EPSS: 0.001660000 probability, percentile 0.055130000 (date 2026-10-21)

Vendor Declared Affected Products

SourceVendorProductVersionPlatforms
CNA Linux Linux affected 8674e2db06cff6b50f2216eed9a761d15425bb34 cebda2a2bb4183550eae9dcf888c16407b4fffda git Not specified
CNA Linux Linux affected ce01a4e5cfac7adbe0be565f90cd32ecbb2f8337 3484a99303912db62428494a9061212049027e57 git Not specified
CNA Linux Linux affected ee861486e377edc55361c08dcbceab3f6b6577bd bc489c0c9b8c86bd7fac42cfd1bb152f042fca56 git Not specified
CNA Linux Linux affected ee861486e377edc55361c08dcbceab3f6b6577bd e7d28823c662128caae63f14e16bd394916c139b git Not specified
CNA Linux Linux affected 928d354ae3557e8f755a227e67be88034eb3cd7f git Not specified
CNA Linux Linux affected 8a800497d9f6c2ec9c2c1ba7b71d0ac2ea7f7bbe git Not specified
CNA Linux Linux affected de1055e7f9e67af32b1f3376066272b04e5223c0 git Not specified
CNA Linux Linux affected 37ad2bb11e9de92cb7b94548705eeedd87f7d392 git Not specified
CNA Linux Linux affected d846d83bdacbd8f14fc45c63b8c1d22608452e1c git Not specified
CNA Linux Linux affected 6.12.101 6.12.114 semver Not specified
CNA Linux Linux affected 6.18.42 6.18.53 semver Not specified
CNA Linux Linux affected 5.10.265 5.11 semver Not specified
CNA Linux Linux affected 5.15.216 5.16 semver Not specified
CNA Linux Linux affected 6.1.183 6.2 semver Not specified
CNA Linux Linux affected 6.6.148 6.7 semver Not specified
CNA Linux Linux affected 7.0.10 7.1 semver Not specified
CNA Linux Linux affected 7.1 Not specified
CNA Linux Linux unaffected 7.1 semver Not specified
CNA Linux Linux unaffected 6.12.114 6.12.* semver Not specified
CNA Linux Linux unaffected 6.18.53 6.18.* semver Not specified
CNA Linux Linux unaffected 7.2.7 7.2.* semver Not specified
CNA Linux Linux unaffected 7.3 * original_commit_for_fix Not specified

References

ReferenceSourceLinkTags
git.kernel.org/stable/c/3484a99303912db62428494a9061212049027e57 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/e7d28823c662128caae63f14e16bd394916c139b 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/bc489c0c9b8c86bd7fac42cfd1bb152f042fca56 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
git.kernel.org/stable/c/cebda2a2bb4183550eae9dcf888c16407b4fffda 416baaa9-dc9f-4396-8d5f-8c081fb06d67 git.kernel.org
CVE Program record CVE.ORG www.cve.org canonical
NVD vulnerability detail NVD nvd.nist.gov canonical, analysis

© CVE.report 2026

Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. It is the responsibility of user to evaluate the accuracy, completeness or usefulness of any information, opinion, advice or other content. EACH USER WILL BE SOLELY RESPONSIBLE FOR ANY consequences of his or her direct or indirect use of this web site. ALL WARRANTIES OF ANY KIND ARE EXPRESSLY DISCLAIMED. This site will NOT BE LIABLE FOR ANY DIRECT, INDIRECT or any other kind of loss.

CVE, CWE, and OVAL are registred trademarks of The MITRE Corporation and the authoritative source of CVE content is MITRE's CVE web site. This site includes MITRE data granted under the following license.

Free CVE JSON API cve.report/api

CVE.report and Source URL Uptime Status status.cve.report