CVEvulnerability
CVE-2026-98626
- Status
- Received
- Published
- 2026-10-18
- Last modified
- 2026-10-19
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Description
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.
References
- https://git.kernel.org/stable/c/2d7d04357c41aa49a5ac658fcc207439f2ad6456 git.kernel.org
- https://git.kernel.org/stable/c/394ae398337c5f87e567f6cd63b937fc2b2f6ddc git.kernel.org
- https://git.kernel.org/stable/c/8e4cbcca1e0a2fc5e6c8edb68e0cf5f2587f9319 git.kernel.org
- https://git.kernel.org/stable/c/a0b79cdfcf34b53c85bac2d3cf022fc1342eeca0 git.kernel.org
- https://git.kernel.org/stable/c/a8c47e62d9aea2d47a09e06c1682c59c21b92449 git.kernel.org
- https://git.kernel.org/stable/c/d3219c229d16900cef936adad28633c98946e432 git.kernel.org
- https://git.kernel.org/stable/c/f2a24101e89dd0804e717da7c1bd6af513698aa2 git.kernel.org