{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38526","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-04-16T04:51:24.023Z","datePublished":"2025-08-16T11:12:20.036Z","dateUpdated":"2026-08-05T12:02:39.169Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:02:39.169Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nice: add NULL check in eswitch lag check\n\nThe function ice_lag_is_switchdev_running() is being called from outside of\nthe LAG event handler code.  This results in the lag->upper_netdev being\nNULL sometimes.  To avoid a NULL-pointer dereference, there needs to be a\ncheck before it is dereferenced."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable function sits directly in the ice per-packet TX datapath (`ice_xmit_frame_ring()`), so any inbound packet that elicits a kernel-generated reply — ARP, ICMP echo, TCP SYN-ACK/RST — drives the host into the NULL dereference from the network. ice is the 100G NIC used in internet-facing cloud and datacenter servers, so a remote unauthenticated peer can reach the faulting code.\nAC:L - Once the affected configuration is present (SRIOV-LAG-capable PF not enslaved in a bond, which is the default post-probe state), the dereference is deterministic on the very next transmit — no race to win, no memory layout to groom, no packet content requirements.\nPR:N - Reaching `ice_xmit_frame_ring()` requires no credentials at all: a remote peer needs only to send a packet the host answers, and locally any unprivileged process calling `sendto()` on the interface suffices. No capability, namespace, or authentication check exists anywhere on that path.\nUI:N - No victim action is needed; the crash occurs during ordinary packet transmission driven entirely by the attacker's traffic.\nS:U - The fault and its impact are both in the host kernel's own security authority — a standard kernel oops with no crossing of a VM, IOMMU, or sandbox boundary. The one VF-originated path (`virtchnl` promiscuous-mode) is gated behind trusted-VF status, so no guest-to-host boundary crossing is established.\nC:N - This is a read of `nd_net` at a small fixed offset from a NULL pointer; the faulting address is not attacker-influenced and the value is never returned to userspace or the wire, so no information is disclosed.\nI:N - No memory is written, no object is freed or reused, and no type confusion occurs — the bug is a pure read fault with no path to modifying kernel state.\nA:H - The NULL dereference occurs in the transmit/softirq path and produces a kernel oops or panic, taking down the networking datapath and typically the whole system, and it re-triggers on every subsequent transmit attempt."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/ice/ice_lag.c"],"versions":[{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","lessThan":"27591d926191e42b2332e4bad3bcd3a49def393b","status":"affected","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","lessThan":"5a5d64f0eec82076b2c09fee2195d640cfbe3379","status":"affected","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","lessThan":"245917d3c5ed7c6ae720302b64eac5c6f0c85177","status":"affected","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","lessThan":"3ce58b01ada408b372f15b7c992ed0519840e3cf","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/ice/ice_lag.c"],"versions":[{"version":"6.6","status":"affected"},{"version":"0","lessThan":"6.6","status":"unaffected","versionType":"semver"},{"version":"6.6.100","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.40","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.15.8","lessThanOrEqual":"6.15.*","status":"unaffected","versionType":"semver"},{"version":"6.16","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.6.100"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.12.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.15.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.16"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/27591d926191e42b2332e4bad3bcd3a49def393b"},{"url":"https://git.kernel.org/stable/c/5a5d64f0eec82076b2c09fee2195d640cfbe3379"},{"url":"https://git.kernel.org/stable/c/245917d3c5ed7c6ae720302b64eac5c6f0c85177"},{"url":"https://git.kernel.org/stable/c/3ce58b01ada408b372f15b7c992ed0519840e3cf"}],"title":"ice: add NULL check in eswitch lag check","x_generator":{"engine":"bippy-1.2.0"}}}}