ovpn: tcp - fix packet extraction from stream
Summary
| CVE | CVE-2026-43254 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-05-06 12:16:46 UTC |
| Updated | 2026-05-06 13:07:51 UTC |
| 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%. |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected 11851cbd60ea1e5abbd97619d69845ead99303d6 0315bec883c67fa1413c61e504a28dc5bd02eb37 git |
Not specified |
| CNA |
Linux |
Linux |
affected 11851cbd60ea1e5abbd97619d69845ead99303d6 7dba6cd7fb168d7615194a631c9c100c1c224131 git |
Not specified |
| CNA |
Linux |
Linux |
affected 11851cbd60ea1e5abbd97619d69845ead99303d6 d4f687fbbce45b5e88438e89b5e26c0c15847992 git |
Not specified |
| CNA |
Linux |
Linux |
affected 6.16 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.16 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.16 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.19.6 6.19.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.0 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/d4f687fbbce45b5e88438e89b5e26c0c15847992 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/7dba6cd7fb168d7615194a631c9c100c1c224131 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/0315bec883c67fa1413c61e504a28dc5bd02eb37 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.