All vulnerabilities
CVE-2026-98812

Linux: net/mctp: publish the mctp_dev only after it is initialised

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.18%Chance of exploitation activity in the next 30 days, higher than 6% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in288ef37e0c463192dbb6436e61cdc07ce666dcb9Also 63120572edde85bb2b70b0ed4d4817ed52247613CVE List
Published18 Oct 2026Updated 21 Oct 2026CVE List

What fixes it

  • 288ef37e0c463192dbb6436e61cdc07ce666dcb9LinuxCVE List
  • 63120572edde85bb2b70b0ed4d4817ed52247613LinuxCVE 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:

net/mctp: publish the mctp_dev only after it is initialised

mctp_add_dev() links the new mctp_dev into dev->mctp_ptr before mdev->dev is assigned, so a reader that picks the device up in that window dereferences a net_device pointer that is still NULL:

KASAN: null-ptr-deref in range [0x00000000000000b0-0x00000000000000b7] Call Trace: <TASK> ? __pfx_mctp_sendmsg (./include/linux/sockptr.h:49) ? __pfx_mctp_dst_output (net/mctp/route.c:41) ? selinux_socket_sendmsg (security/selinux/hooks.c:5278) ____sys_sendmsg (net/socket.c:775 (discriminator 1) net/socket.c:790 (discriminator 1) net/socket.c:2684 (discriminator 1)) ? __pfx_____sys_sendmsg (net/socket.c:1131) ? __pfx_copy_msghdr_from_user (net/socket.c:2590) ? update_cfs_rq_load_avg (kernel/sched/fair.c:5478) ___sys_sendmsg (net/socket.c:2738) ? __pfx____sys_sendmsg (net/socket.c:2625) ? perf_event_task_tick (./include/linux/rcupdate.h:838) ? sched_tick (kernel/sched/core.c:5818) ? clockevents_program_event (kernel/time/clockevents.c:372) ? fdget (./include/linux/rcupdate.h:873 fs/file.c:1100) __sys_sendmsg (net/socket.c:2770) ? __pfx___sys_sendmsg (net/socket.c:2751) do_syscall_64 (arch/x86/entry/syscall_64.c:63) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) </TASK>

Fix by publishing only once the object is fully initialised: __mctp_dev_get() runs under rcu_read_lock() only and hands this object to readers as soon as mctp_ptr is assigned, so they must never observe mdev->dev == NULL.

Text from CVE List

Affected versions 12

  • Linuxaffected: 583be982d93479ea3d85091b0fd0b01201ede87d before 288ef37e0c463192dbb6436e61cdc07ce666dcb9CVE List
  • Linuxaffected: 583be982d93479ea3d85091b0fd0b01201ede87d before af6e4f931afc2d670d133aa2bedc8b6e3753c618CVE List
  • Linuxaffected: 583be982d93479ea3d85091b0fd0b01201ede87d before 63120572edde85bb2b70b0ed4d4817ed52247613CVE List
  • Linuxaffected: 583be982d93479ea3d85091b0fd0b01201ede87d before f37f42e6e039a48c2dcf6c079b9f7fbc864ab7efCVE List
  • Linuxaffected: 583be982d93479ea3d85091b0fd0b01201ede87d before aadf655e8ea9a8ffa24bb8d69f504572e8d18181CVE List
  • Linuxaffected: 5.15CVE List
  • Linuxunaffected: all versions before 5.15CVE List
  • Linuxunaffected: 6.6.160 through 6.6.*CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.56 through 6.18.*CVE List
  • Linuxunaffected: 7.2.10 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5