CVE-2026-43254

Source
https://cve.org/CVERecord?id=CVE-2026-43254
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43254.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-43254
Downstream
Published
2026-05-06T11:28:43.871Z
Modified
2026-07-15T01:49:01.509020565Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
ovpn: tcp - fix packet extraction from stream
Details

In the Linux kernel, the following vulnerability has been resolved:

ovpn: tcp - fix packet extraction from stream

When processing TCP stream data in ovpntcprecv, we receive large cloned skbs from _strprcv that may contain multiple coalesced packets. The current implementation has two bugs:

  1. Header offset overflow: Using pskbpull with large offsets on coalesced skbs causes skb->data - skb->head to exceed the u16 storage of skb->networkheader. This causes skbresetnetwork_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 skbcopybits 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%.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43254.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
11851cbd60ea1e5abbd97619d69845ead99303d6
Fixed
0315bec883c67fa1413c61e504a28dc5bd02eb37
Fixed
7dba6cd7fb168d7615194a631c9c100c1c224131
Fixed
d4f687fbbce45b5e88438e89b5e26c0c15847992

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43254.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.16.0
Fixed
6.18.16
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
6.19.6

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43254.json"