CVE-2026-43254

ovpn: tcp - fix packet extraction from stream

HIGH
7.5
CVSS Score
Published: May 6, 2026 at 11:28 AM UTC
Updated: August 5, 2026 at 01:24 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.5
Exploit prediction
EPSS 0.5%

Description

In the Linux kernel, the following vulnerability has been resolved: ovpn: tcp - fix packet extraction from stream When processing TCP stream data in ovpn_tcp_recv, we receive large cloned skbs from __strp_rcv that may contain multiple coalesced packets. The current implementation has two bugs: 1. Header offset overflow: Using pskb_pull with large offsets on coalesced skbs causes skb->data - skb->head to exceed the u16 storage of skb->network_header. This causes skb_reset_network_header to fail on the inner decapsulated packet, resulting in packet drops. 2. Unaligned protocol headers: Extracting packets from arbitrary positions within the coalesced TCP stream provides no alignment guarantees for the packet data causing performance penalties on architectures without efficient unaligned access. Additionally, openvpn's 2-byte length prefix on TCP packets causes the subsequent 4-byte opcode and packet ID fields to be inherently misaligned. Fix both issues by allocating a new skb for each openvpn packet and using skb_copy_bits to extract only the packet content into the new buffer, skipping the 2-byte length prefix. Also, check the length before invoking the function that performs the allocation to avoid creating an invalid skb. If the packet has to be forwarded to userspace the 2-byte prefix can be pushed to the head safely, without misalignment. As a side effect, this approach also avoids the expensive linearization that pskb_pull triggers on cloned skbs with page fragments. In testing, this resulted in TCP throughput improvements of up to 74%.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.16 ≤ v < 6.18.166.16 ≤ v < 6.19.66.16 ≤ v < 7.06.19 ≤ v < 6.19.611851cbd60ea1e5abbd97619d69845ead99303d66.167.0 rc1
Vendor states this is fixed in 0315bec883c67fa1413c61e504a28dc5bd02eb37 (fixed)
Vendor states this is fixed in 7dba6cd7fb168d7615194a631c9c100c1c224131 (fixed)
Vendor states this is fixed in d4f687fbbce45b5e88438e89b5e26c0c15847992 (fixed)
Vendor states this is fixed in 6.16 (unaffected)
Vendor states this is fixed in 6.18.16 (unaffected)
Vendor states this is fixed in 6.19.6 (unaffected)
Vendor states this is fixed in 7.0 (unaffected)

CVSS

7.5HIGHLinux
Vector?

Quick Info

StatusANALYZED
CWE
CWE-190

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card