All vulnerabilities
CVE-2026-98590

Linux: bpf: Fix bpf_sock context code generation

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.21%Chance of exploitation activity in the next 30 days, higher than 10% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in4a41d064facc3330e176ecbbf5b0026ed18a5c69Also 70288599d1754e157df8326239316dbdf08ea33c, 84ebb991ae985149079ae9ab51b7e3ba25a9ff53 and 1 moreCVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 4a41d064facc3330e176ecbbf5b0026ed18a5c69LinuxCVE List
  • 70288599d1754e157df8326239316dbdf08ea33cLinuxCVE List
  • 84ebb991ae985149079ae9ab51b7e3ba25a9ff53LinuxCVE List
  • 4a4852376e3a2727ea40e61143d6d7c22bb6dfadLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

Text from CVE List

Affected versions 18

  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before e3ddcf4aeb342d4de2e5761c7042270d454752deCVE List
  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before 4a41d064facc3330e176ecbbf5b0026ed18a5c69CVE List
  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before 70288599d1754e157df8326239316dbdf08ea33cCVE List
  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before ea4dc96c902ccfa49dd3e4f23c443dab4a74b018CVE List
  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before b3f37afc7fd7c52bc2114310aff1eb24c7cd4d73CVE List
  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before d95dd5a6c6cd08d5ae466d3aed27b3cf59155a6cCVE List
  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before 84ebb991ae985149079ae9ab51b7e3ba25a9ff53CVE List
  • Linuxaffected: c3c16f2ea6d20159903cf93afbb1155f3d8348d5 before 4a4852376e3a2727ea40e61143d6d7c22bb6dfadCVE List
  • Linuxaffected: 5.8CVE List
  • Linuxunaffected: all versions before 5.8CVE List
  • Linuxunaffected: 5.10.271 through 5.10.*CVE List
  • Linuxunaffected: 5.15.222 through 5.15.*CVE List
  • Linuxunaffected: 6.1.189 through 6.1.*CVE List
  • Linuxunaffected: 6.6.158 through 6.6.*CVE List
  • Linuxunaffected: 6.12.112 through 6.12.*CVE List
  • Linuxunaffected: 6.18.55 through 6.18.*CVE List
  • Linuxunaffected: 7.2.9 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 8