{"id":"CVE-2026-98525","kind":"vulnerability","aliases":["CVE-2026-98525"],"related":[],"title":"Linux kernel MCTP: sockets can use other sockets' preallocated tags","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmctp: route: iterate socket tag list in mctp_lookup_prealloc_tag()\n\nWhen a socket transmits a packet with MCTP_TAG_PREALLOC set,\nmctp_lookup_prealloc_tag() iterates over the per-netns &mns->keys list\nand matches netid, req_tag, peer_addr, and manual_alloc, without\nchecking whether tmp->sk == &msk->sk. This allows any MCTP socket in the\nsame network namespace to use and consume another socket's preallocated\ntag.\n\nIterate the socket's own tag list (&msk->keys via sklist) instead of the\nnamespace-wide &mns->keys list in mctp_lookup_prealloc_tag(), ensuring\nthat only tags allocated by msk are matched.\n\nTested in QEMU against Linux 7.3.0-rc3 by allocating a manual tag\n(0x18) on socket A via SIOCMCTPALLOCTAG for peer EID 9 and sending a\n4-byte message with MCTP_TAG_PREALLOC from socket B in the same network\nnamespace. On the unfixed kernel, sendto(sock_b) using socket A's\npreallocated tag succeeds (ret = 4); with this patch applied,\nsendto(sock_b) fails with -ENOENT (errno = 2) while sendto(sock_a)\nsucceeds (ret = 4).","summary":"In the Linux kernel's MCTP route code, a socket sending with the prealloc tag flag could match tags reserved by any other MCTP socket in the same network namespace. The fix limits tag lookup to the sending socket's own tag list, so one socket can no longer consume another socket's preallocated tag.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["bmc","embedded","infrastructure","linux-kernel","mctp"],"not_affected_if":["mctp-not-loaded","single-tenant-namespace"],"how_to_check":"- `uname -r` to see the running kernel version\n- Check whether the MCTP stack is in use (`lsmod | grep mctp`); unknown whether this matters without MCTP sockets in use","fix":"- Update the Linux kernel to a release that includes the upstream mctp route fix (fixed version: unknown)","status":"open","published_at":"2026-10-18T16:17:03+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:25:08+00:00","updated_at":"2026-10-25T05:25:08+00:00","category":"infrastructure","confidence":0.6,"triage":{"at":"2026-10-25T05:25:08Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a release that includes the upstream mctp route fix (fixed version: unknown)","reach":"local","title":"Linux kernel MCTP: sockets can use other sockets' preallocated tags","impact":"low","summary":"In the Linux kernel's MCTP route code, a socket sending with the prealloc tag flag could match tags reserved by any other MCTP socket in the same network namespace. The fix limits tag lookup to the sending socket's own tag list, so one socket can no longer consume another socket's preallocated tag.","category":"infrastructure","nicknames":[],"who_cares":["linux-kernel","mctp","embedded","bmc"],"confidence":0.6,"needs_auth":"yes","worst_case":"A local socket hijacks another socket's preallocated MCTP tag, disrupting its traffic","analyst_note":"Confirm affected kernel version range and fixed release from the NVD entry and the upstream stable commit.","how_to_check":"- `uname -r` to see the running kernel version\n- Check whether the MCTP stack is in use (`lsmod | grep mctp`); unknown whether this matters without MCTP sockets in use","needs_analyst":true,"not_affected_if":["mctp-not-loaded","single-tenant-namespace"],"who_is_affected":"Only systems that load the MCTP protocol and open MCTP sockets can be affected, and the issue matters mainly where several local users or services share a network namespace. The sources do not give affected kernel version ranges. Systems without MCTP support or use can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000654,"input_tokens":3690,"output_tokens":569,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-98525':13A,16A '0x18':206C '2':261C '4':219C,249C,268C '7.3.0':199C '9':215C 'addr':130C 'alloc':133C,189C,202C 'allow':142C 'anoth':74B,155C 'appli':253C 'b':228C,240C,256C 'bmc':17B 'byte':220C 'check':135C 'code':31B 'consum':73B,154C 'could':40B 'cve':11A,14A 'eid':214C 'embed':18B 'enoent':259C 'ensur':185C 'errno':260C 'fail':257C 'fix':55B 'flag':39B 'follow':84C 'infrastructur':19B 'instead':171C 'iter':91C,115C,160C 'kernel':2A,22B,27B,82C,237C 'key':122C,168C,178C 'limit':56B 'linux':1A,21B,26B,81C,198C 'linux-kernel':20B 'list':66B,94C,123C,166C,179C 'longer':72B 'lookup':58B,97C,112C,182C 'manual':132C,204C 'match':41B,125C,193C 'mctp':3A,23B,29B,47B,89C,96C,107C,111C,144C,181C,223C 'messag':221C 'mns':121C,177C 'msk':139C,167C,191C 'namespac':53B,150C,175C,233C 'namespace-wid':174C 'netid':126C 'netn':120C 'network':52B,149C,232C 'one':68B 'packet':105C 'patch':252C 'peer':129C,213C 'per':119C 'per-netn':118C 'prealloc':9A,37B,77B,98C,109C,113C,158C,183C,225C,245C 'qemu':196C 'rc3':200C 'req':127C 'reserv':43B 'resolv':88C 'ret':248C,267C 'rout':30B,90C 'send':34B,61B,217C 'sendto':238C,254C,263C 'set':110C 'siocmctpalloctag':211C 'sk':138C,140C 'sklist':170C 'sock':239C,255C,264C 'socket':4A,8A,33B,48B,62B,69B,75B,92C,102C,145C,156C,162C,208C,227C,242C 'succeed':247C,266C 'tag':10A,38B,42B,57B,65B,78B,93C,99C,108C,114C,128C,159C,165C,184C,188C,205C,224C,246C 'test':194C 'tmp':137C 'transmit':103C 'unfix':236C 'use':6A,152C,241C 'via':169C,210C 'vulner':85C 'whether':136C 'wide':176C 'without':134C","nicknames":[],"mitigations":[],"who_affected":"Only systems that load the MCTP protocol and open MCTP sockets can be affected, and the issue matters mainly where several local users or services share a network namespace. The sources do not give affected kernel version ranges. Systems without MCTP support or use can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:03+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98525","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98525","severity":null,"published_at":"2026-10-18T16:17:03+00:00","modified_at":"2026-10-19T10:19:07+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"}