CVE-2026-98590NVD
Vulnerability Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix bpf_sock context code generation
Currently, the ctx access code reads the rx_queue_mapping
field with either a 4-byte or 2-byte load. The rest of the bits
in the register are marked known zero by the verifier. However,
the emitted ctx access code places in the register on certain
the special value (-1) using BPF_MOV_IMM64, which gets sign-extended
to turn on all the bits in the register. By shifting this value right,
the program ends up with a value at runtime above what the verifier
assumes is possible.
Fix this by ensuring the read value is as wide as the assumed size.
Use MOV32 instructions instead of MOV64 instructions to keep
the upper bits zero as assumed by the verifier. Also properly report
the size of the destination variable (the bpf_sock field, 4 bytes) instead
of the source (the socket field, 2 bytes).
bpf: Fix bpf_sock context code generation
Currently, the ctx access code reads the rx_queue_mapping
field with either a 4-byte or 2-byte load. The rest of the bits
in the register are marked known zero by the verifier. However,
the emitted ctx access code places in the register on certain
the special value (-1) using BPF_MOV_IMM64, which gets sign-extended
to turn on all the bits in the register. By shifting this value right,
the program ends up with a value at runtime above what the verifier
assumes is possible.
Fix this by ensuring the read value is as wide as the assumed size.
Use MOV32 instructions instead of MOV64 instructions to keep
the upper bits zero as assumed by the verifier. Also properly report
the size of the destination variable (the bpf_sock field, 4 bytes) instead
of the source (the socket field, 2 bytes).
Affected & Patched Versions
Not provided by NVD for this CVE.
Not provided by NVD for this CVE.
External References
- https://git.kernel.org/stable/c/4a41d064facc3330e176ecbbf5b0026ed18a5c69
- https://git.kernel.org/stable/c/4a4852376e3a2727ea40e61143d6d7c22bb6dfad
- https://git.kernel.org/stable/c/70288599d1754e157df8326239316dbdf08ea33c
- https://git.kernel.org/stable/c/84ebb991ae985149079ae9ab51b7e3ba25a9ff53
- https://git.kernel.org/stable/c/b3f37afc7fd7c52bc2114310aff1eb24c7cd4d73
- https://git.kernel.org/stable/c/d95dd5a6c6cd08d5ae466d3aed27b3cf59155a6c
- https://git.kernel.org/stable/c/e3ddcf4aeb342d4de2e5761c7042270d454752de
- https://git.kernel.org/stable/c/ea4dc96c902ccfa49dd3e4f23c443dab4a74b018