CVE-2025-38127: ice: fix Tx scheduler error handling in XDP callback
In the Linux kernel, the following vulnerability has been resolved:
ice: fix Tx scheduler error handling in XDP callback
When the XDP program is loaded, the XDP callback adds new Tx queues.
This means that the callback must update the Tx scheduler with the new
queue number. In the event of a Tx scheduler failure, the XDP callback
should also fail and roll back any changes previously made for XDP
preparation.
The previous implementation had a bug that not all changes made by the
XDP callback were rolled back. This caused the crash with the following
call trace:
[ +9.549584] ice 0000:ca:00.0: Failed VSI LAN queue config for XDP, error: -5
[ +0.382335] Oops: general protection fault, probably for non-canonical address 0x50a2250a90495525: 0000 [#1] SMP NOPTI
[ +0.010710] CPU: 103 UID: 0 PID: 0 Comm: swapper/103 Not tainted 6.14.0-net-next-mar-31+ #14 PREEMPT(voluntary)
[ +0.010175] Hardware name: Intel Corporation M50CYP2SBSTD/M50CYP2SBSTD, BIOS SE5C620.86B.01.01.0005.2202160810 02/16/2022
[ +0.010946] RIP: 0010:__ice_update_sample+0x39/0xe0 [ice]
[...]
[ +0.002715] Call Trace:
[ +0.002452] <IRQ>
[ +0.002021] ? __die_body.cold+0x19/0x29
[ +0.003922] ? die_addr+0x3c/0x60
[ +0.003319] ? exc_general_protection+0x17c/0x400
[ +0.004707] ? asm_exc_general_protection+0x26/0x30
[ +0.004879] ? __ice_update_sample+0x39/0xe0 [ice]
[ +0.004835] ice_napi_poll+0x665/0x680 [ice]
[ +0.004320] __napi_poll+0x28/0x190
[ +0.003500] net_rx_action+0x198/0x360
[ +0.003752] ? update_rq_clock+0x39/0x220
[ +0.004013] handle_softirqs+0xf1/0x340
[ +0.003840] ? sched_clock_cpu+0xf/0x1f0
[ +0.003925] __irq_exit_rcu+0xc2/0xe0
[ +0.003665] common_interrupt+0x85/0xa0
[ +0.003839] </IRQ>
[ +0.002098] <TASK>
[ +0.002106] asm_common_interrupt+0x26/0x40
[ +0.004184] RIP: 0010:cpuidle_enter_state+0xd3/0x690
Fix this by performing the missing unmapping of XDP queues from
q_vectors and setting the XDP rings pointer back to NULL after all those
queues are released.
Also, add an immediate exit from the XDP callback in case of ring
preparation failure.
Security readout for executives and security teams
Plain-English summary
A Linux Intel Ethernet driver flaw can leave XDP transmit queues partially configured after a scheduler failure. The resulting stale state can trigger a kernel protection fault and crash the host. Exploitation requires local, low-privileged access according to the supplied CVSS vector, so internet exposure alone is insufficient.
Executive priority
Prioritize affected high-availability, networking, and multi-user Linux hosts because a kernel crash can disrupt services. Accelerate remediation where untrusted local users can influence XDP configuration. Systems without the ice driver or XDP use are lower priority, but version and configuration evidence should support any exception.
Technical view
The ice driver’s XDP setup callback did not completely roll back changes after Tx scheduler or ring preparation failures. Released XDP queues could remain mapped to q_vectors, and the XDP rings pointer was not reset. Later packet-processing activity could dereference invalid state and cause a kernel general protection fault. The fix completes queue cleanup, clears the pointer, and exits immediately after preparation failure.
Likely exposure
Exposure is most plausible on Linux systems using the ice network driver where XDP programs are loaded or managed. The supplied data marks several kernel versions as affected, but its version formatting is ambiguous. Confirm the exact kernel build, driver usage, XDP configuration, and distribution advisory before declaring a host vulnerable.
Exploitation context
The supplied CVSS 3.1 score is 7.8 with local access, low complexity, low privileges, and no user interaction. The bundle documents a kernel crash during failed XDP queue configuration. It does not establish remote reachability or a reliable attack path. The CVE is not listed as KEV, and no supplied source reports active exploitation.
Researcher notes
The failure is an incomplete error-path rollback in ice XDP queue setup. The supplied trace demonstrates a general protection fault after VSI LAN queue configuration failed. Although the CVSS vector claims confidentiality, integrity, and availability impact, the narrative directly demonstrates only a crash. Exact vulnerable and fixed release boundaries cannot be reconstructed confidently from the flattened version list.
Mitigation direction
Install a vendor-supported kernel containing the applicable linked stable fix.
Check distribution or appliance guidance for the exact corrected release.
Restrict who can load or reconfigure XDP programs until remediation.
Avoid unsupported kernel builds where update provenance cannot be verified.
Validation and detection
Inventory kernel versions and identify systems using the ice driver.
Determine whether XDP programs are loaded on affected network interfaces.
Map installed builds against vendor advisories and the linked stable commits.
Review kernel logs for ice queue-configuration failures or protection faults.
After updating, confirm the running kernel includes the applicable fix.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-38127 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
5Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.