{"id":"CVE-2026-99265","kind":"vulnerability","aliases":["CVE-2026-99265"],"related":[],"title":"Linux kernel io_uring: pipe error path can remove unrelated fixed files","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nio_uring/openclose: keep the lock in io_pipe_fixed()\n\nio_pipe_fixed() installs both ends of the pipe in the fixed file table,\ndrops ->uring_lock, and copies the slot numbers to the application. If\nthat faults, it takes the lock again and removes whatever is in these\nslots.\n\nIf the request is run by io-wq the lock really is dropped in between, and\nthe slots are visible to everybody else. By the time the error path gets\nto them, they may have been closed and reused, by IORING_OP_CLOSE and a\ndirect open or accept, or by IORING_REGISTER_FILES_UPDATE. Then a file is\nremoved from the table that has nothing to do with the failed request.\n\nDo the copy with the lock held. Faulting in user memory under\n->uring_lock is fine, the registration paths do it all the time.","summary":"In io_uring's io_pipe_fixed() path, the kernel drops its lock while io-wq runs the request, so the error path can close fixed-table slots that were reused by other requests. An attacker who can submit io_uring requests may be able to cause unrelated open files to be removed from another request's table.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["infrastructure","io_uring","kubernetes","linux","self-hosted"],"not_affected_if":["io-uring-disabled"],"how_to_check":"- Run `uname -r` and compare against the kernel version ranges in the fix source.\n- Check whether io_uring is enabled with `sysctl kernel.io_uring_disabled`.","fix":null,"status":"open","published_at":"2026-11-03T12:17:33+00:00","first_seen_at":"2026-11-03T12:20:40+00:00","triaged_at":"2026-11-03T12:22:43+00:00","updated_at":"2026-11-03T12:22:43+00:00","category":"infrastructure","confidence":0.5,"triage":{"at":"2026-11-03T12:22:43Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel io_uring: pipe error path can remove unrelated fixed files","impact":"medium","summary":"In io_uring's io_pipe_fixed() path, the kernel drops its lock while io-wq runs the request, so the error path can close fixed-table slots that were reused by other requests. An attacker who can submit io_uring requests may be able to cause unrelated open files to be removed from another request's table.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["linux","io_uring","self-hosted","kubernetes"],"confidence":0.5,"fix_status":"unknown","needs_auth":"unknown","worst_case":"unrelated open files removed from the fixed table, possibly causing memory corruption","analyst_note":"Find the affected kernel version ranges and the stable fix commit from the NVD entry or kernel.org stable mailing list.","how_to_check":"- Run `uname -r` and compare against the kernel version ranges in the fix source.\n- Check whether io_uring is enabled with `sysctl kernel.io_uring_disabled`.\n- unknown for anything beyond this, as the sources do not list affected ranges.","plain_action":"","needs_analyst":true,"not_affected_if":["io-uring-disabled"],"who_is_affected":"Systems running a Linux kernel with io_uring support where io_uring operations use fixed file tables and io-wq. Hosts that disable io_uring or run distributions that restrict it are less exposed. The sources do not list affected kernel version ranges.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.00072,"input_tokens":4315,"output_tokens":577,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-99265':15A,18A 'abl':73B 'accept':195C 'anoth':83B 'applic':130C 'attack':64B 'caus':75B 'close':52B,183C,189C 'copi':124C,221C 'cve':13A,16A 'direct':192C 'drop':37B,120C,159C 'els':169C 'end':111C 'error':6A,49B,174C 'everybodi':168C 'fail':217C 'fault':133C,226C 'file':12A,78B,118C,200C,204C 'fine':234C 'fix':11A,33B,54B,105C,108C,117C 'fixed-t':53B 'follow':92C 'get':176C 'held':225C 'host':26B 'infrastructur':19B 'instal':109C 'io':3A,20B,28B,31B,42B,68B,97C,103C,106C,153C 'io-wq':41B,152C 'ior':187C,198C 'keep':99C 'kernel':2A,36B,90C 'kubernet':22B 'linux':1A,23B,89C 'lock':39B,101C,122C,137C,156C,224C,232C 'may':71B,180C 'memori':229C 'noth':212C 'number':127C 'op':188C 'open':77B,193C 'path':7A,34B,50B,175C,237C 'pipe':5A,32B,104C,107C,114C 'realli':157C 'regist':199C 'registr':236C 'remov':9A,81B,140C,206C 'request':46B,62B,70B,84B,148C,218C 'resolv':96C 'reus':59B,185C 'run':44B,150C 'self':25B 'self-host':24B 'slot':56B,126C,145C,164C 'submit':67B 'tabl':55B,86B,119C,209C 'take':135C 'time':172C,242C 'unrel':10A,76B 'updat':201C 'ure':4A,21B,29B,69B,121C,231C 'uring/openclose':98C 'user':228C 'visibl':166C 'vulner':93C 'whatev':141C 'wq':43B,154C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with io_uring support where io_uring operations use fixed file tables and io-wq. Hosts that disable io_uring or run distributions that restrict it are less exposed. The sources do not list affected kernel version ranges.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["infrastructure","iouring","kubernetes","linux","selfhosted","unknown"],"first_public_at":"2026-11-03T12:17:33+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99265","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99265","severity":null,"published_at":"2026-11-03T12:17:33+00:00","modified_at":"2026-11-03T12:17:33+00:00","first_seen_at":"2026-11-03T12:20:40+00:00","fetched_at":"2026-11-03T12:20:40+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"}