Skip to main content
← All vulnerabilities
CVE-2026-98590

bpf: Fix bpf_sock context code generation

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
None on Exploit-DB, Metasploit or GitHub

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).

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in e3ddcf4aeb342d4de2e5761c7042270d454752de; From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in 4a41d064facc3330e176ecbbf5b0026ed18a5c69; From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in 70288599d1754e157df8326239316dbdf08ea33c; From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in ea4dc96c902ccfa49dd3e4f23c443dab4a74b018; From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in b3f37afc7fd7c52bc2114310aff1eb24c7cd4d73; From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in d95dd5a6c6cd08d5ae466d3aed27b3cf59155a6c; From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in 84ebb991ae985149079ae9ab51b7e3ba25a9ff53; From c3c16f2ea6d20159903cf93afbb1155f3d8348d5 · fixed in 4a4852376e3a2727ea40e61143d6d7c22bb6dfad

  • Linux Linux

    5.8

  • KernelLinux

    From 5.8.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9

References 8

git.kernel.org