CVE-2025-21926

CVE-2025-21926

High · published April 1, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
14.1
In the wild
Unconfirmed
What it is

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

net: gso: fix ownership in __udp_gso_segment

In __udp_gso_segment the skb destructor is removed before segmenting the

skb but the socket reference is kept as-is. This is an issue if the

original skb is later orphaned as we can hit the following bug:

kernel BUG at ./include/linux/skbuff.h:3312! (skb_orphan)

RIP: 0010:ip_rcv_core+0x8b2/0xca0

Call Trace:

ip_rcv+0xab/0x6e0

__netif_receive_skb_one_core+0x168/0x1b0

process_backlog+0x384/0x1100

__napi_poll.constprop.0+0xa1/0x370

net_rx_action+0x925/0xe50

The above can happen following a sequence of events when using

OpenVSwitch, when an OVS_ACTION_ATTR_USERSPACE action precedes an

OVS_ACTION_ATTR_OUTPUT action:

1. OVS_ACTION_ATTR_USERSPACE is handled (in do_execute_actions): the skb

goes through queue_gso_packets and then __udp_gso_segment, where its

destructor is removed.

2. The segments' data are copied and sent to userspace.

3. OVS_ACTION_ATTR_OUTPUT is handled (in do_execute_actions) and the

same original skb is sent to its path.

4. If it later hits skb_orphan, we hit the bug.

Fix this by also removing the reference to the socket in

__udp_gso_segment.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00239 · 14.1th percentile
Published
2025-04-01T20:15Z
Affected products (12)
ProductVersionsFixed in
linux/linux_kernel≥ 4.18, < 5.4.2915.4.291
linux/linux_kernel≥ 5.5, < 5.10.2355.10.235
linux/linux_kernel≥ 5.11, < 5.15.1795.15.179
linux/linux_kernel≥ 5.16, < 6.1.1316.1.131
linux/linux_kernel≥ 6.2, < 6.6.836.6.83
linux/linux_kernel≥ 6.7, < 6.12.196.12.19
linux/linux_kernel≥ 6.13, < 6.13.76.13.7
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (12)
EPSS history
Timeline
  • 01 APR 15:40Z
    net: gso: fix ownership in __udp_gso_segment
    cvelistv5