CVE-2026-43254 Details
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%.
A vulnerability in the Linux kernel's OpenVPN TCP stream handling has been addressed. The issue arose in the 'ovpn_tcp_recv' function, where large cloned socket buffers (skbs) from the TCP stream could contain multiple coalesced packets. This led to two main problems: First, a header offset overflow occurred when 'pskb_pull' was used with large offsets on coalesced skbs, causing the network header to become misaligned and resulting in packet drops. Second, the extraction of packets from arbitrary positions in the coalesced TCP stream created unaligned protocol headers, causing performance issues on architectures that do not handle unaligned access efficiently. Additionally, OpenVPN's 2-byte length prefix on TCP packets misaligned subsequent fields, further complicating packet processing. The vulnerability has been fixed by allocating a new skb for each OpenVPN packet, extracting only the relevant data while skipping the length prefix, and ensuring proper alignment before forwarding packets to userspace. This fix also improved TCP throughput by up to 74%.
Users can upgrade to the latest version of the Linux kernel where this vulnerability has been fixed.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/0315bec883c67fa1413c61e504a28dc5bd02eb37 | kernel.org | Patch |
| https://git.kernel.org/stable/c/7dba6cd7fb168d7615194a631c9c100c1c224131 | kernel.org | Patch |
| https://git.kernel.org/stable/c/d4f687fbbce45b5e88438e89b5e26c0c15847992 | kernel.org | Patch |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-190 | Integer Overflow or Wraparound | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 6.16, < 6.18.16 >= 6.19, < 6.19.6 7.0 rc1 |
CPE
Remediation
| |
Change History
4 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | kernel.org |
| May 11, 2026 | Initial Analysis | [email protected] |
| May 8, 2026 | CVE Modified | kernel.org |
| May 6, 2026 | New CVE Received | kernel.org |