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



