---
id: CVE-2026-80995
title: 'net: mctp: hold a reference to the route device in mctp_route_lookup()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  net: mctp: hold a reference to the route device in mctp_route_lookup()

  mctp_route_lookup() uses rt->dev without holding a reference on it.
  mctp_route_lookup_single() r…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-825
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 22cb45afd221b9e4f2a1dcc74a8ff645b7293aa1 <
    cc561f8af25586300c2f9d285babb163b866b293
  - >-
    Linux >= 22cb45afd221b9e4f2a1dcc74a8ff645b7293aa1 <
    408da1df18116c971c3392e21e50586688cd3fbf
  - Linux 7.1
published: '2026-09-11'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T08:46:19.571Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-80995'
references:
  - url: 'https://git.kernel.org/stable/c/cc561f8af25586300c2f9d285babb163b866b293'
  - url: 'https://git.kernel.org/stable/c/408da1df18116c971c3392e21e50586688cd3fbf'
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-80995.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-80995'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2532081'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-80995'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-80995'
  - url: >-
      https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-80995.mbox
tags:
  - cve.org
  - csaf
  - vex
  - red-hat
  - score-dispute
epss: 0.00165
epssPercentile: 0.05669
scores:
  cna: 7.8
  vendor: 5.5
ingestedAt: '2026-09-14T15:23:07.476Z'
---

## Overview

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

net: mctp: hold a reference to the route device in mctp_route_lookup()

mctp_route_lookup() uses rt->dev without holding a reference on it.
mctp_route_lookup_single() returns the route under RCU only, so the
route's device can be torn down concurrently: mctp_dev_put() drops the
last reference and synchronously kfree()s mdev->addrs.  mctp_dev_saddr()
then reads rt->dev->addrs[0], giving a use-after-free reachable by an
unprivileged local AF_MCTP user on the receive/forwarding path (no
CAP_NET_RAW required):

  BUG: KASAN: slab-use-after-free in mctp_route_lookup
  Read of size 1 at addr ... by task mctp_uaf/...
   mctp_route_lookup
   mctp_pkttype_receive
  Freed by task ...:
   kfree
   mctp_dev_put
   mctp_dev_notify

In the same window mctp_dst_from_route() -> mctp_dev_hold() also
increments a refcount that has already reached zero
("refcount_t: addition on 0 ... mctp_dev_hold").

This reintroduces the use-after-free class of CVE-2023-3439: the source
address lookup was moved ahead of the point where the destination takes
its device reference.

Take a reference with refcount_inc_not_zero() before touching rt->dev,
skip a device that is already dead, and drop the reference once the
destination has taken its own.

## Affected

- `Linux >= 22cb45afd221b9e4f2a1dcc74a8ff645b7293aa1 < cc561f8af25586300c2f9d285babb163b866b293`
- `Linux >= 22cb45afd221b9e4f2a1dcc74a8ff645b7293aa1 < 408da1df18116c971c3392e21e50586688cd3fbf`
- `Linux 7.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **Red Hat VEX** · Moderate · updated 2026-09-14 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-80995.json)
