{"id":"CVE-2026-98590","kind":"vulnerability","aliases":["CVE-2026-98590"],"related":[],"title":"Linux kernel: BPF socket context code can read out-of-range rx_queue_mapping values","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Fix bpf_sock context code generation\n\nCurrently, the ctx access code reads the rx_queue_mapping\nfield with either a 4-byte or 2-byte load. The rest of the bits\nin the register are marked known zero by the verifier. However,\nthe emitted ctx access code places in the register on certain\nthe special value (-1) using BPF_MOV_IMM64, which gets sign-extended\nto turn on all the bits in the register. By shifting this value right,\nthe program ends up with a value at runtime above what the verifier\nassumes is possible.\n\nFix this by ensuring the read value is as wide as the assumed size.\nUse MOV32 instructions instead of MOV64 instructions to keep\nthe upper bits zero as assumed by the verifier. Also properly report\nthe size of the destination variable (the bpf_sock field, 4 bytes) instead\nof the source (the socket field, 2 bytes).","summary":"A bug in the Linux kernel's BPF verifier-generated code for bpf_sock context access can leave a register holding a value larger than the verifier assumed, so a BPF program's runtime view of rx_queue_mapping no longer matches its verified bounds. The sources do not state what an attacker can do with this beyond that mismatch.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["bpf","linux-kernel","runtime"],"not_affected_if":[],"how_to_check":"- unknown","fix":"- unknown","status":"open","published_at":"2026-10-18T16:17:11+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:21:43+00:00","updated_at":"2026-10-25T05:21:43+00:00","category":"runtime","confidence":0.4,"triage":{"at":"2026-10-25T05:21:43Z","model":"claude-haiku-5-5","output":{"fix":"- unknown","reach":"local","title":"Linux kernel: BPF socket context code can read out-of-range rx_queue_mapping values","impact":"medium","summary":"A bug in the Linux kernel's BPF verifier-generated code for bpf_sock context access can leave a register holding a value larger than the verifier assumed, so a BPF program's runtime view of rx_queue_mapping no longer matches its verified bounds. The sources do not state what an attacker can do with this beyond that mismatch.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","bpf"],"confidence":0.4,"needs_auth":"unknown","worst_case":"unknown","analyst_note":"Check the kernel.org stable commit for bpf_sock rx_queue_mapping and the affected kernel version ranges, then confirm the fixed stable release for each branch.","how_to_check":"- unknown","needs_analyst":true,"not_affected_if":[],"who_is_affected":"unknown","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000545,"input_tokens":3530,"output_tokens":384,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-1':156C '-2026':18A,21A '-98590':19A,22A '2':123C,250C '4':120C,241C 'access':44B,109C,145C 'also':228C 'assum':56B,193C,208C,224C 'attack':81B 'beyond':86B 'bit':130C,171C,221C 'bound':73B 'bpf':3A,23B,35B,41B,59B,99C,101C,158C,238C 'bug':29B 'byte':121C,124C,242C,251C 'certain':152C 'code':6A,39B,104C,110C,146C 'context':5A,43B,103C 'ctx':108C,144C 'current':106C 'cve':17A,20A 'destin':235C 'either':118C 'emit':143C 'end':182C 'ensur':199C 'extend':165C 'field':116C,240C,249C 'fix':100C,196C 'follow':94C 'generat':38B,105C 'get':162C 'hold':49B 'howev':141C 'imm64':160C 'instead':213C,243C 'instruct':212C,216C 'keep':218C 'kernel':2A,26B,33B,92C 'known':136C 'larger':52B 'leav':46B 'linux':1A,25B,32B,91C 'linux-kernel':24B 'load':125C 'longer':69B 'map':15A,67B,115C 'mark':135C 'match':70B 'mismatch':88B 'mov':159C 'mov32':211C 'mov64':215C 'out-of-rang':9A 'place':147C 'possibl':195C 'program':60B,181C 'proper':229C 'queue':14A,66B,114C 'rang':12A 'read':8A,111C,201C 'regist':48B,133C,150C,174C 'report':230C 'resolv':98C 'rest':127C 'right':179C 'runtim':27B,62B,188C 'rx':13A,65B,113C 'shift':176C 'sign':164C 'sign-extend':163C 'size':209C,232C 'sock':42B,102C,239C 'socket':4A,248C 'sourc':75B,246C 'special':154C 'state':78B 'turn':167C 'upper':220C 'use':157C,210C 'valu':16A,51B,155C,178C,186C,202C 'variabl':236C 'verifi':37B,55B,72B,140C,192C,227C 'verifier-gener':36B 'view':63B 'vulner':95C 'wide':205C 'zero':137C,222C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:11+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98590","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98590","severity":null,"published_at":"2026-10-18T16:17:11+00:00","modified_at":"2026-10-19T10:19:20+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}