CVE-2026-89555
Received Received - Intake

Use-After-Free in Linux Kernel MPLS Implementation

Vulnerability report for CVE-2026-89555, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-11

Last updated on: 2026-09-11

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: mpls: reload header after pskb_may_pull() mpls_select_multipath() calls mpls_multipath_hash() to choose a nexthop when an MPLS route has multiple nexthops. While walking the MPLS label stack, the hash routine caches hdr for the current label. After finding the bottom-of-stack label, it calls pskb_may_pull() before reading the inner IP header. If an skb is constructed with the inner IP header in nonlinear data and insufficient tailroom in the linear head, pskb_may_pull() calls pskb_expand_head() to replace the skb head and free the old one. This leaves hdr pointing to freed memory. The IPv6 path can invalidate hdr again when it performs a second pull for the larger header. The issue was found through static analysis. A reproducer sending a legal Geneve packet through a bareudp/MPLS multipath setup triggered the same KASAN report in 2 of 2 unpatched runs: BUG: KASAN: slab-use-after-free in mpls_select_multipath Read of size 1 at addr ffff88800ecc6e20 by task ksoftirqd/1/23 Call Trace: mpls_select_multipath mpls_forward __netif_receive_skb_list_core netif_receive_skb_list_internal napi_complete_done gro_cell_poll __napi_poll net_rx_action Freed by task 23: kfree pskb_expand_head __pskb_pull_tail mpls_select_multipath Reload hdr from the current skb head after each successful pull before deriving the inner IPv4 or IPv6 header pointer.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-11
Last Modified
2026-09-11
Generated
2026-09-12
AI Q&A
2026-09-12
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux_kernel linux_kernel *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves a use-after-free flaw in the MPLS (Multiprotocol Label Switching) packet handling code. The issue occurs when mpls_select_multipath() caches a pointer to the MPLS header, then calls pskb_may_pull() which may reallocate the skb head. This leaves the cached pointer pointing to freed memory, leading to a use-after-free condition when the pointer is later accessed.

Detection Guidance

This vulnerability may trigger a KASAN report in the kernel logs when exploited. Monitor logs for 'BUG: KASAN: slab-use-after-free in mpls_select_multipath' errors. No specific commands are provided in the context to detect this issue.

Impact Analysis

This vulnerability could allow an attacker to cause a denial-of-service (DoS) condition by triggering a kernel crash (e.g., via a KASAN report) or potentially execute arbitrary code with kernel privileges. It affects systems using MPLS networking features, particularly those with multipath routing configurations.

Mitigation Strategies

Apply the Linux kernel patch that reloads the header after pskb_may_pull() in the MPLS path. Update to a kernel version containing the fix for CVE-2026-89555.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-89555. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart