Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix ld_{abs,ind} failure path analysis in subprogs Usage of ld_{abs,ind} instructions got extended into subprogs some time ago via commit 09b28d76eac4 ("bpf: Add abnormal return checks."). These are only allowed in subprograms when the latter are BTF annotated and have scalar return types. The code generator in bpf_gen_ld_abs() has an abnormal exit path (r0=0 + exit) from legacy cBPF times. While the enforcement is on scalar return types, the verifier must also simulate the path of abnormal exit if the packet data load via ld_{abs,ind} failed. This is currently not the case. Fix it by having the verifier simulate both success and failure paths, and extend it in similar ways as we do for tail calls. The success path (r0=unknown, continue to next insn) is pushed onto stack for later validation and the r0=0 and return to the caller is done on the fall-through side.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
09b28d76eac48e922dc293da1aa2b2b85c32aeee to < 928d354ae3557e8f755a227e67be88034eb3cd7faffected09b28d76eac48e922dc293da1aa2b2b85c32aeee to < 8a800497d9f6c2ec9c2c1ba7b71d0ac2ea7f7bbeaffected09b28d76eac48e922dc293da1aa2b2b85c32aeee to < de1055e7f9e67af32b1f3376066272b04e5223c0affected09b28d76eac48e922dc293da1aa2b2b85c32aeee to < 37ad2bb11e9de92cb7b94548705eeedd87f7d392affected09b28d76eac48e922dc293da1aa2b2b85c32aeee to < 8674e2db06cff6b50f2216eed9a761d15425bb34affected09b28d76eac48e922dc293da1aa2b2b85c32aeee to < ce01a4e5cfac7adbe0be565f90cd32ecbb2f8337affected09b28d76eac48e922dc293da1aa2b2b85c32aeee to < d846d83bdacbd8f14fc45c63b8c1d22608452e1caffected09b28d76eac48e922dc293da1aa2b2b85c32aeee to < ee861486e377edc55361c08dcbceab3f6b6577bdaffected
Linux Linux
Default version status: affected
5.10affected0 to < 5.10unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.0.10 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/928d354ae3557e8f755a227e67be88034eb3cd7f ↗
- https://git.kernel.org/stable/c/8a800497d9f6c2ec9c2c1ba7b71d0ac2ea7f7bbe ↗
- https://git.kernel.org/stable/c/de1055e7f9e67af32b1f3376066272b04e5223c0 ↗
- https://git.kernel.org/stable/c/37ad2bb11e9de92cb7b94548705eeedd87f7d392 ↗
- https://git.kernel.org/stable/c/8674e2db06cff6b50f2216eed9a761d15425bb34 ↗
- https://git.kernel.org/stable/c/ce01a4e5cfac7adbe0be565f90cd32ecbb2f8337 ↗
- https://git.kernel.org/stable/c/d846d83bdacbd8f14fc45c63b8c1d22608452e1c ↗
- https://git.kernel.org/stable/c/ee861486e377edc55361c08dcbceab3f6b6577bd ↗
- https://access.redhat.com/security/cve/CVE-2026-53090 ↗
- https://bugzilla.redhat.com/show_bug.cgi?id=2492305 ↗
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-53090.json ↗