Description
In the Linux kernel, the following vulnerability has been resolved:

mctp: route: iterate socket tag list in mctp_lookup_prealloc_tag()

When a socket transmits a packet with MCTP_TAG_PREALLOC set,
mctp_lookup_prealloc_tag() iterates over the per-netns &mns->keys list
and matches netid, req_tag, peer_addr, and manual_alloc, without
checking whether tmp->sk == &msk->sk. This allows any MCTP socket in the
same network namespace to use and consume another socket's preallocated
tag.

Iterate the socket's own tag list (&msk->keys via sklist) instead of the
namespace-wide &mns->keys list in mctp_lookup_prealloc_tag(), ensuring
that only tags allocated by msk are matched.

Tested in QEMU against Linux 7.3.0-rc3 by allocating a manual tag
(0x18) on socket A via SIOCMCTPALLOCTAG for peer EID 9 and sending a
4-byte message with MCTP_TAG_PREALLOC from socket B in the same network
namespace. On the unfixed kernel, sendto(sock_b) using socket A's
preallocated tag succeeds (ret = 4); with this patch applied,
sendto(sock_b) fails with -ENOENT (errno = 2) while sendto(sock_a)
succeeds (ret = 4).
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Unauthorized MCTP Tag Access
Action: Apply Patch
AI Analysis

Impact

The Linux kernel bug allows a socket that sets MCTP_TAG_PREALLOC to reuse a preallocated tag belonging to another socket in the same network namespace. The kernel function mctp_lookup_prealloc_tag() walks a namespace‑wide list of tags without verifying that the socket being examined matches the calling socket, enabling one socket to consume a tag that was allocated for a different socket. This can lead to packets being sent under an unauthorized tag, effectively circumventing any isolation that the per‑socket preallocation was meant to provide.

Affected Systems

Linux kernel versions before the patch that introduced the fix are vulnerable. The issue was observed in QEMU running Linux 7.3.0‑rc3; any kernel building with the mctp route code before that commit is at risk.

Risk and Exploitability

The flaw requires local code running in the same network namespace and the ability to open an MCTP socket, so the attack vector is local. No EPSS score is available and the vulnerability is not listed in the CISA KEV catalog, but the exploit is straightforward: a malicious process can create an MCTP socket, enumerate the namespace’s keys, and send data using another socket’s tag, potentially breaching application level isolation.

Generated by OpenCVE AI on October 18, 2026 at 23:30 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that contains the mctp_lookup_prealloc_tag() fix (e.g., kernel commits after 09299addab).
  • If an upgrade is not feasible, disable MCTP support in the kernel configuration to eliminate the vulnerable code path.
  • Restrict the creation of MCTP sockets to trusted or privileged processes to reduce the chance of an attacker exploiting the issue.
  • Introduce stricter isolation by ensuring that processes communicate only within isolated network namespaces so that the attack surface of the namespace‑wide key list is minimized.

Generated by OpenCVE AI on October 18, 2026 at 23:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 23:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-285

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mctp: route: iterate socket tag list in mctp_lookup_prealloc_tag() When a socket transmits a packet with MCTP_TAG_PREALLOC set, mctp_lookup_prealloc_tag() iterates over the per-netns &mns->keys list and matches netid, req_tag, peer_addr, and manual_alloc, without checking whether tmp->sk == &msk->sk. This allows any MCTP socket in the same network namespace to use and consume another socket's preallocated tag. Iterate the socket's own tag list (&msk->keys via sklist) instead of the namespace-wide &mns->keys list in mctp_lookup_prealloc_tag(), ensuring that only tags allocated by msk are matched. Tested in QEMU against Linux 7.3.0-rc3 by allocating a manual tag (0x18) on socket A via SIOCMCTPALLOCTAG for peer EID 9 and sending a 4-byte message with MCTP_TAG_PREALLOC from socket B in the same network namespace. On the unfixed kernel, sendto(sock_b) using socket A's preallocated tag succeeds (ret = 4); with this patch applied, sendto(sock_b) fails with -ENOENT (errno = 2) while sendto(sock_a) succeeds (ret = 4).
Title mctp: route: iterate socket tag list in mctp_lookup_prealloc_tag()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:17:43.216Z

Reserved: 2026-09-25T10:25:14.355Z

Link: CVE-2026-98525

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:03.953

Modified: 2026-10-18T16:17:03.953

Link: CVE-2026-98525

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T23:30:14Z

Weaknesses