CVE-2026-98626
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2026
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
bpf: Restrict CO-RE poisoning to relocatable instructions
In the Linux kernel, the following vulnerability has been resolved: bpf: Restrict CO-RE poisoning to relocatable instructions CO-RE relocation records can name any instruction offset. When a relocation cannot be resolved, bpf_core_patch_insn() currently poisons its target before checking whether that instruction is a valid relocation target. Malformed metadata can therefore replace jumps, calls, exits, register-source arithmetic, or non-immediate loads instead of failing at the relocation step. Handle poisoning only after the instruction has passed the same class and operand-form checks used for a resolved relocation. Route invalid forms through the existing diagnostic and return a hard error. Keep poisoning supported instructions, including both halves of a plain ldimm64, so an unresolved relocation in dead code remains valid. Extend bpf_core_poison_insn() to poison both halves of ldimm64, and return its status directly from each validated instruction case. This avoids routing the success path through a common label and leaves the helper free to report errors. The shared relocation code applies this restriction to both libbpf and in-kernel CO-RE.
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
unaffected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| d7a252708dbc950ca2064310217e8b9f85846e2f | affected | git | a8c47e62d9aea2d47a09e06c1682c59c21b92449 | Unavailable | None listed |
| d7a252708dbc950ca2064310217e8b9f85846e2f | affected | git | d3219c229d16900cef936adad28633c98946e432 | Unavailable | None listed |
| d7a252708dbc950ca2064310217e8b9f85846e2f | affected | git | a0b79cdfcf34b53c85bac2d3cf022fc1342eeca0 | Unavailable | None listed |
| d7a252708dbc950ca2064310217e8b9f85846e2f | affected | git | f2a24101e89dd0804e717da7c1bd6af513698aa2 | Unavailable | None listed |
| d7a252708dbc950ca2064310217e8b9f85846e2f | affected | git | 2d7d04357c41aa49a5ac658fcc207439f2ad6456 | Unavailable | None listed |
| d7a252708dbc950ca2064310217e8b9f85846e2f | affected | git | 8e4cbcca1e0a2fc5e6c8edb68e0cf5f2587f9319 | Unavailable | None listed |
| d7a252708dbc950ca2064310217e8b9f85846e2f | affected | git | 394ae398337c5f87e567f6cd63b937fc2b2f6ddc | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 5.6 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 5.6 | Unavailable | None listed |
| 5.15.222 | unaffected | semver | Unavailable | 5.15.* | None listed |
| 6.1.189 | unaffected | semver | Unavailable | 6.1.* | None listed |
| 6.6.158 | unaffected | semver | Unavailable | 6.6.* | None listed |
| 6.12.112 | unaffected | semver | Unavailable | 6.12.* | None listed |
| 6.18.55 | unaffected | semver | Unavailable | 6.18.* | None listed |
| 7.2.9 | unaffected | semver | Unavailable | 7.2.* | None listed |
| 7.3 | unaffected | original_commit_for_fix | Unavailable | * | None listed |