CVE-2025-38124: net: fix udp gso skb_segment after pull from frag_list
Noroxi assessment
Priority: Monitor (action score 22/100)
- The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
- Probability of exploitation in the next 30 days: 0.45% (FIRST EPSS).
- Someone with local access to the system can trigger it. A low-privileged account is enough. No user action is required. No special conditions are required; it is repeatable.
- Fixed version: Linux Linux 0e65f38bd1aa14ea86e221b7bb814d38278d86c3, 3382a1ed7f778db841063f5d7e317ac55f9e7f72, 4399f59a9467a324ed46657555f0e1f209a14acb.
- Severity is disputed: the assigning authority (CNA) scores it 7.5, NVD 5.5.
Low priority for now. Upgrade to Linux Linux 0e65f38bd1aa14ea86e221b7bb814d38278d86c3, 3382a1ed7f778db841063f5d7e317ac55f9e7f72, 4399f59a9467a324ed46657555f0e1f209a14acb or later.
Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it
Primary sources: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: net: fix udp gso skb_segment after pull from frag_list Commit a1e40ac5b5e9 ("net: gso: fix udp gso fraglist segmentation after pull from frag_list") detected invalid geometry in frag_list skbs and redirects them from skb_segment_list to more robust skb_segment. But some packets with modified geometry can also hit bugs in that code. We don't know how many such cases exist. Addressing each one by one also requires touching the complex skb_segment code, which risks introducing bugs for other types of skbs. Instead, linearize all these packets that fail the basic invariants on gso fraglist skbs. That is more robust. If only part of the fraglist payload is pulled into head_skb, it will always cause exception when splitting skbs by skb_segment. For detailed call stack information, see below. Valid SKB_GSO_FRAGLIST skbs - consist of two or more segments - the head_skb holds the protocol headers plus first gso_size - one or more frag_list skbs hold exactly one segment - all but the last must be gso_size Optional datapath hooks such as NAT and BPF (bpf_skb_pull_data) can modify fraglist skbs, breaking these invariants. In extreme cases they pull one part of data into skb linear. For UDP, this causes three payloads with lengths of (11,11,10) bytes were pulled tail to become (12,10,10) bytes. The skbs no longer meets the above SKB_GSO_FRAGLIST conditions because payload was pulled into head_skb, it needs to be linearized before pass to regular skb_segment. skb_segment+0xcd0/0xd14 __udp_gso_segment+0x334/0x5f4 udp4_ufo_fragment+0x118/0x15c inet_gso_segment+0x164/0x338 skb_mac_gso_segment+0xc4/0x13c __skb_gso_segment+0xc4/0x124 validate_xmit_skb+0x9c/0x2c0 validate_xmit_skb_list+0x4c/0x80 sch_direct_xmit+0x70/0x404 __dev_queue_xmit+0x64c/0xe5c neigh_resolve_output+0x178/0x1c4 ip_finish_output2+0x37c/0x47c __ip_finish_output+0x194/0x240 ip_finish_output+0x20/0xf4 ip_output+0x100/0x1a0 NF_HOOK+0xc4/0x16c ip_forward+0x314/0x32c ip_rcv+0x90/0x118 __netif_receive_skb+0x74/0x124 process_backlog+0xe8/0x1a4 __napi_poll+0x5c/0x1f8 net_rx_action+0x154/0x314 handle_softirqs+0x154/0x4b8 [118.376811] [C201134] rxq0_pus: [name:bug&]kernel BUG at net/core/skbuff.c:4278! [118.376829] [C201134] rxq0_pus: [name:traps&]Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP [118.470774] [C201134] rxq0_pus: [name:mrdump&]Kernel Offset: 0x178cc00000 from 0xffffffc008000000 [118.470810] [C201134] rxq0_pus: [name:mrdump&]PHYS_OFFSET: 0x40000000 [118.470827] [C201134] rxq0_pus: [name:mrdump&]pstate: 60400005 (nZCv daif +PAN -UAO) [118.470848] [C201134] rxq0_pus: [name:mrdump&]pc : [0xffffffd79598aefc] skb_segment+0xcd0/0xd14 [118.470900] [C201134] rxq0_pus: [name:mrdump&]lr : [0xffffffd79598a5e8] skb_segment+0x3bc/0xd14 [118.470928] [C201134] rxq0_pus: [name:mrdump&]sp : ffffffc008013770
- Published
- Jul 3, 2025
- Updated
- Oct 15, 2026
- EPSS
- 0.4% · 39th percentile
- CWE
- CWE-401
Report tools
Action score
22
Monitor
Low priority for now.
- CVSS
- 22 / 40 · 5.5 / 10
- CISA KEV
- 0 / 30 · Not listed
- EPSS
- 0 / 30 · 0.4%
CNA vs NVD score
- NVD
- 5.5
- CNA · Linux
- 7.5
- 2.0 point gap
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.
Get told when this record changes
- Not in KEV: no record of exploitation in the wild
- No public exploit code on record
- A fix has been released
If any of these changes, we'll tell you in the daily email digest.
Running WordPress? Scan your site free with WP Lens
Noroxi analysis
What does it mean in your environment?
The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.
We use this product, ask for helpAffected systems
Is your version affected?
Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.
| Vendor | Product | CPE |
|---|---|---|
| linux | linux kernel | cpe:2.3:o:linux:linux_kernel |
| debian | debian linux | cpe:2.3:o:debian:debian_linux |
Affected versions
NVD version ranges (for catalog products). Add the product to your stack with a version and matching uses these.
- debian debian linux11.0
- linux linux kernel6.6.55 and later · before 6.6.94
- linux linux kernel6.10.14 and later · before 6.11
- linux linux kernel6.11.3 and later · before 6.12
- linux linux kernel6.1.113 and later · before 6.1.142
- linux linux kernel6.13 and later · before 6.15.3
- linux linux kernel6.12.1 and later · before 6.12.34
- linux linux kernel6.12
Versions reported by the vendor
Affected version ranges reported by the assigning authority (Linux). Independent of NVD's CPE analysis and usually ahead of it.
Linux Linux
- 33e28acf42ee863f332a958bfc2f1a284a3659df, 3cd00d2e3655fad3bda96dc1ebf17b6495f86fea, 6.12affected
- 080e6c9a3908de193a48f646c5ce1bfb15676ffc and later · before 0e65f38bd1aa14ea86e221b7bb814d38278d86c3affected · git
- af3122f5fdc0d00581d6e598a668df6bf54c9daa and later · before 85eef1748c024da1a191aed56b30a3a65958c50caffected · git
- a1e40ac5b5e9077fe1f7ae0eb88034db0f9ae1ab and later · before 4399f59a9467a324ed46657555f0e1f209a14acbaffected · git
- a1e40ac5b5e9077fe1f7ae0eb88034db0f9ae1ab and later · before a04302867094bdc6efac1b598370fc47cf3f2388affected · git
- a1e40ac5b5e9077fe1f7ae0eb88034db0f9ae1ab and later · before 3382a1ed7f778db841063f5d7e317ac55f9e7f72affected · git
- 6.1.113 and later · before 6.1.142affected · semver
- 6.6.55 and later · before 6.6.94affected · semver
- 6.10.14 and later · before 6.11affected · semver
- 6.11.3 and later · before 6.12affected · semver
Package-level exposure
OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.
| Ecosystem | Package | Affected range | Fix |
|---|---|---|---|
| AlmaLinux:10 | kernel-abi-stablelists | before 6.12.0-55.28.1.el10_0 | 6.12.0-55.28.1.el10_0 |
| AlmaLinux:10 | kernel-doc | before 6.12.0-55.28.1.el10_0 | 6.12.0-55.28.1.el10_0 |
| AlmaLinux:9 | kernel | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-core | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-core | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-devel | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-devel-matched | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-modules | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-modules-core | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-modules-extra | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-devel | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-devel-matched | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-modules | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-modules-core | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-64k-modules-extra | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-abi-stablelists | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-core | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-cross-headers | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-debug | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-debug-core | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-debug-devel | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
| AlmaLinux:9 | kernel-debug-devel-matched | before 5.14.0-570.35.1.el9_6 | 5.14.0-570.35.1.el9_6 |
+96
Same product
linux: all recordsOther highest-scoring records for the same primary product.
- CVE-2026-31431crypto: algif_aead - Revert to operating out-of-placeKEV90Now
- CVE-2022-0847A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe KEV89Now
- CVE-2021-22555Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACEKEV85Now
Published before and after this one in the same product
- ← EarlierCVE-2025-38122Jul 3, 2025 · gve: add missing NULL check for gve_alloc_pending_packet() in TX DQO22Monitor
- ← EarlierCVE-2025-38123Jul 3, 2025 · net: wwan: t7xx: Fix napi rx poll issue22Monitor
- Later →CVE-2025-38126Jul 3, 2025 · net: stmmac: make sure that ptp_rate is not 0 before configuring timestamping22Monitor
Remediation
Which version to upgrade to
Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.
| Product / package | Fixed version | Source |
|---|---|---|
| Linux Linux | 0e65f38bd1aa14ea86e221b7bb814d38278d86c3 | Vendor (CNA) |
| Linux Linux | 3382a1ed7f778db841063f5d7e317ac55f9e7f72 | Vendor (CNA) |
| Linux Linux | 4399f59a9467a324ed46657555f0e1f209a14acb | Vendor (CNA) |
| Linux Linux | 6.1.142 | Vendor (CNA) |
| Linux Linux | 6.11 | Vendor (CNA) |
| Linux Linux | 6.12 | Vendor (CNA) |
| Linux Linux | 6.6.94 | Vendor (CNA) |
| Linux Linux | 85eef1748c024da1a191aed56b30a3a65958c50c | Vendor (CNA) |
| Linux Linux | a04302867094bdc6efac1b598370fc47cf3f2388 | Vendor (CNA) |
| almalinux:kernel | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-core | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-core | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-devel | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-devel-matched | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-modules | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-modules-core | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-modules-extra | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-devel | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-devel-matched | 5.14.0-570.35.1.el9_6 · AlmaLinux:9 | Package registry (OSV) |
| debian:linux | 6.1.147-1 · Debian:12 | Package registry (OSV) |
| red hat:kernel-64k-debug-debuginfo | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-debug-devel | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-debug-devel-matched | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-debuginfo | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-devel | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-devel-matched | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debug-debuginfo | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debug-devel | 0:5.14.0-570.35.1.el9_6 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
+4
Exploit status
No known public exploit
No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.
Research context
For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.
Timeline
From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.
No dated events beyond publication.
No history yet (it accumulates with the daily EPSS job).
Patch and commit links
Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.
No commit or PR link among the references.
Credits
All researchersFinders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.
No credits in the CNA record.
Variant candidates
Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.
No nightly-computed relations.
Chain candidates
An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.
—
Bug bounty scope
No known public program.
Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).
Technical details
Attack conditions
- Someone with local access to the system can trigger it.
- A low-privileged account is enough.
- No user action is required.
- No special conditions are required; it is repeatable.
If successful
- Confidentiality
- none
- Integrity
- none
- Availability
- high · the service can be disrupted
- Attack vector
- Local
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality impact
- None
- Integrity impact
- None
- Availability impact
- High
Weakness class (CWE)
CWE-401 · Missing Release of Memory after Effective LifetimeCVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
nvd-primary
Attack context
MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.
MITRE has no CAPEC/ATT&CK mapping for this CWE.
Change log
- Fix✗ → ✓
For records you follow, these changes also arrive as notifications. →
References
Show all references (6 more)Show less
- git.kernel.org/stable/c/3382a1ed7f778db841063f5d7e317ac55f9e7f72
- git.kernel.org/stable/c/4399f59a9467a324ed46657555f0e1f209a14acb
- git.kernel.org/stable/c/85eef1748c024da1a191aed56b30a3a65958c50c
- git.kernel.org/stable/c/a04302867094bdc6efac1b598370fc47cf3f2388
- lists.debian.org/debian-lts-announce/2025/10/msg00008.html
- cert-portal.siemens.com/productcert/html/ssa-082556.html
Vendor advisories and official records. Exploit/PoC links are deliberately left out.