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

CVE-2026-43383: Linux Kernel TCP-MD5 Timing Attack Flaw

CVE-2026-43383 is an information disclosure vulnerability in Linux kernel TCP-MD5 that enables timing attacks through non-constant-time MAC comparison. This article covers technical details, affected versions, and patches.

Published:

CVE-2026-43383 Overview

CVE-2026-43383 is a vulnerability in the Linux kernel networking stack affecting the TCP-MD5 signature option (RFC 2385). The flaw stems from a non-constant-time comparison of Message Authentication Codes (MACs) used to authenticate TCP segments. An attacker on the network can measure timing differences during MAC validation to recover or forge valid signatures, undermining the integrity protections that TCP-MD5 provides for sessions such as BGP peering.

The issue was resolved by replacing the byte-by-byte comparison with a constant-time helper function in the kernel's net/tcp-md5 code path.

Critical Impact

Network-based attackers can exploit timing side-channels in TCP-MD5 MAC validation to compromise the integrity of authenticated TCP sessions, potentially affecting BGP routing infrastructure and other long-lived protocols that rely on TCP-MD5.

Affected Products

  • Linux kernel versions containing the vulnerable net/tcp-md5 MAC comparison logic prior to the upstream fix
  • Distributions and appliances that ship Linux-based BGP routing stacks using TCP-MD5 signatures
  • Stable kernel branches addressed by the referenced backport commits

Discovery Timeline

  • 2026-05-08 - CVE-2026-43383 published to NVD
  • 2026-05-12 - Last updated in NVD database

Technical Details for CVE-2026-43383

Vulnerability Analysis

The Linux kernel implements the TCP-MD5 signature option to authenticate TCP segments between trusted peers. When a segment arrives, the receiver computes the expected MD5 digest over the segment and shared secret, then compares it against the value carried in the TCP option. The vulnerable implementation performed this comparison using a standard memory comparison routine that returns early on the first differing byte.

This early-exit behavior leaks information about how many leading bytes of an attacker-supplied MAC match the expected value. By measuring response timing across many probes, an attacker can iteratively recover the correct MAC byte by byte. Once a valid MAC is produced, the attacker can inject authenticated segments into the session.

The issue is classified as a Timing Attack and Side Channel Attack, falling under broader cryptographic implementation weaknesses tracked as [CWE-208].

Root Cause

The root cause is the use of a non-constant-time comparison function for security-sensitive MAC validation in net/tcp-md5. Cryptographic equality checks must execute in time independent of the data being compared. The original code allowed execution time to depend on the position of the first byte mismatch.

Attack Vector

Exploitation requires network reachability to a host that accepts TCP-MD5 authenticated segments. The attacker sends crafted TCP segments with candidate MAC values and measures the time taken for the kernel to reject or accept each segment. Statistical analysis across many trials reveals the correct MAC. No authentication or user interaction is required prior to the attack, and the attack complexity is low.

The fix replaces the vulnerable comparison with a constant-time helper, ensuring the validation path executes in time independent of MAC contents. See the upstream commits including Linux Kernel Commit 02669e2 and Linux Kernel Commit ae3831b for technical details.

Detection Methods for CVE-2026-43383

Indicators of Compromise

  • Unusually high volumes of TCP segments carrying the TCP-MD5 signature option (TCP option kind 19) arriving from a single source or small set of sources
  • Spikes in TCP-MD5 authentication failures logged by the kernel or BGP daemon
  • Unexpected BGP session resets or route updates from peers that pass TCP-MD5 validation but originate from atypical paths

Detection Strategies

  • Monitor netstat -s and nstat counters for TCP-MD5 input failures and correlate sustained increases with peer source addresses
  • Inspect packet captures on BGP peering interfaces for repeated segments containing TCP option kind 19 with varying signature bytes against the same sequence number
  • Use kernel version inventory to identify hosts running unpatched kernel builds in the vulnerable range

Monitoring Recommendations

  • Alert on anomalous TCP-MD5 failure rates from BGP routing daemons such as FRR, BIRD, and OpenBGPD
  • Track upstream kernel CVE feeds and distribution security advisories for backport coverage across all stable branches
  • Capture flow telemetry on management and peering networks to identify scanning or probing patterns targeting TCP-MD5 endpoints

How to Mitigate CVE-2026-43383

Immediate Actions Required

  • Identify all Linux hosts that act as BGP speakers or otherwise enable TCP-MD5 authentication and inventory their kernel versions
  • Apply vendor-supplied kernel updates that include the constant-time MAC comparison fix as soon as they are available
  • Restrict network reachability of TCP-MD5 endpoints to known peer addresses using stateful firewall rules

Patch Information

The vulnerability is fixed across multiple stable kernel branches via the following upstream commits: Linux Kernel Commit 02669e2, Linux Kernel Commit 345a953, Linux Kernel Commit 46d0d6f, Linux Kernel Commit 5d305a9, Linux Kernel Commit 821c875, Linux Kernel Commit ae3831b, and Linux Kernel Commit b502e97. Rebuild or update kernels from a distribution vendor that has incorporated these backports.

Workarounds

  • Limit TCP-MD5 protected ports (typically TCP/179 for BGP) to peer IP addresses using iptables, nftables, or upstream network ACLs to reduce probing surface
  • Where feasible, migrate from TCP-MD5 to TCP Authentication Option (TCP-AO, RFC 5925), which provides stronger cryptographic protections
  • Rotate TCP-MD5 shared secrets after patching to invalidate any keys that may have been exposed through prior timing exploitation
bash
# Example: restrict BGP peering with TCP-MD5 to known peer addresses using nftables
nft add rule inet filter input tcp dport 179 ip saddr != { 192.0.2.1, 198.51.100.2 } drop

# Verify running kernel version against patched releases
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.