Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-43208

CVE-2026-43208: Linux Kernel Buffer Overflow Vulnerability

CVE-2026-43208 is a buffer overflow flaw in the Linux kernel's RPS implementation that can cause out-of-bound access and crashes. This article covers the technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-43208 Overview

CVE-2026-43208 is a Linux kernel vulnerability in the networking subsystem affecting Receive Packet Steering (RPS) handling. The flaw resides in the set_rps_cpu() function, which incorrectly assumed the RPS table for each receive queue would maintain a consistent size and never change. This assumption can lead to out-of-bounds memory access and potential kernel crashes when the table size changes between get_rps_cpu() and set_rps_cpu() calls. The kernel maintainers resolved the issue by computing flow_id directly inside set_rps_cpu() rather than passing the value from the caller.

Critical Impact

Out-of-bounds memory access in the kernel network path can cause system crashes and potential memory corruption affecting Linux network stack stability.

Affected Products

  • Linux kernel (networking subsystem, RPS implementation)
  • Distributions shipping affected kernel versions prior to the fix commits
  • Systems with RPS enabled on multi-queue network interfaces

Discovery Timeline

  • 2026-05-06 - CVE CVE-2026-43208 published to NVD
  • 2026-05-06 - Last updated in NVD database

Technical Details for CVE-2026-43208

Vulnerability Analysis

The vulnerability exists in the Linux kernel's Receive Packet Steering implementation. RPS distributes packet processing across multiple CPUs by hashing flow identifiers into a per-receive-queue table. The original implementation passed flow_id from get_rps_cpu() to set_rps_cpu() as a precomputed value.

This design assumed the RPS flow table size remains constant across both function calls. When the table size changes between calls, the precomputed flow_id may exceed the current table bounds. The result is an out-of-bound array access in kernel memory.

The fix recomputes flow_id inside set_rps_cpu() against the current table state. This eliminates the stale-index condition. The patch is committed under hashes 5455a232, 8a8a9fac, and ed712dc0 in the upstream stable tree.

Root Cause

The root cause is an unsafe assumption about kernel data structure invariance. The blamed commit treated the RPS flow table as fixed-size and immutable across the receive path. RPS tables can be resized via sysfs, invalidating any cached index. Passing flow_id between functions without re-validation creates a Time-of-Check Time-of-Use (TOCTOU) condition leading to out-of-bounds reads or writes.

Attack Vector

Exploitation requires the ability to trigger RPS table size changes concurrent with active network traffic processing. An attacker with local privileges to modify RPS configuration via /sys/class/net/<iface>/queues/rx-*/rps_flow_cnt could create the race condition. Network traffic targeting affected receive queues would then trigger the out-of-bounds access. The primary impact is denial of service through kernel crash, with potential for memory corruption.

No verified public exploit code is available. Refer to the upstream commits for technical patch details:

Detection Methods for CVE-2026-43208

Indicators of Compromise

  • Unexpected kernel oops or panic messages referencing set_rps_cpu or get_rps_cpu in dmesg output
  • KASAN reports indicating out-of-bounds access in the net/core/dev.c networking code path
  • Sudden network interface resets or queue stalls correlated with RPS configuration changes

Detection Strategies

  • Monitor kernel logs for crash signatures involving the RPS subsystem and receive queue processing
  • Audit changes to RPS flow count parameters under /sys/class/net/*/queues/rx-*/rps_flow_cnt
  • Validate running kernel version against the patched commits in the upstream stable tree

Monitoring Recommendations

  • Enable persistent kernel crash dump collection via kdump to capture and analyze any RPS-related panics
  • Track sysfs write events to RPS configuration paths through Linux audit framework rules
  • Correlate kernel crash telemetry with network workload changes across fleet endpoints

How to Mitigate CVE-2026-43208

Immediate Actions Required

  • Update affected Linux systems to a kernel version containing commits 5455a232, 8a8a9fac, or ed712dc0
  • Apply distribution-provided kernel updates as soon as vendors release backported fixes
  • Restrict write access to RPS sysfs configuration paths to trusted administrators only

Patch Information

The upstream Linux kernel maintainers resolved the issue by moving flow_id computation into set_rps_cpu(). The fix is available in three stable tree commits: 5455a232edea6b946b99449f15ca771a8874a5a6, 8a8a9fac9efa6423fd74938b940cb7d731780718, and ed712dc0d64dee5f0d05e4d8ca57711f8a9c850c. Distribution maintainers including Red Hat, Debian, Ubuntu, and SUSE typically backport such fixes into their supported kernel branches.

Workarounds

  • Disable RPS on affected interfaces by writing 0 to /sys/class/net/<iface>/queues/rx-*/rps_cpus if performance impact is acceptable
  • Avoid runtime resizing of RPS flow tables on production systems until patches are deployed
  • Limit local user access on multi-tenant systems to reduce attack surface for race condition triggers
bash
# Configuration example - disable RPS on interface eth0 until patched
for q in /sys/class/net/eth0/queues/rx-*/rps_cpus; do
    echo 0 | sudo tee "$q"
done

# Verify running kernel against patched commits
uname -r

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.