{"id":"CVE-2025-38526","state":"PUBLISHED","title":"ice: add NULL check in eswitch lag check","description":"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.","publishedAt":"2025-08-16T11:12:20.036Z","updatedAt":"2026-10-15T21:52:18.578Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"27591d926191e42b2332e4bad3bcd3a49def393b","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"5a5d64f0eec82076b2c09fee2195d640cfbe3379","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"245917d3c5ed7c6ae720302b64eac5c6f0c85177","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"3ce58b01ada408b372f15b7c992ed0519840e3cf","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/ice/ice_lag.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.100","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.40","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.8","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/ice/ice_lag.c"]}],"references":["https://git.kernel.org/stable/c/27591d926191e42b2332e4bad3bcd3a49def393b","https://git.kernel.org/stable/c/5a5d64f0eec82076b2c09fee2195d640cfbe3379","https://git.kernel.org/stable/c/245917d3c5ed7c6ae720302b64eac5c6f0c85177","https://git.kernel.org/stable/c/3ce58b01ada408b372f15b7c992ed0519840e3cf"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38526.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38526","state":"PUBLISHED","datePublished":"2025-08-16T11:12:20.036Z","dateUpdated":"2026-10-15T21:52:18.578Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:24.023Z"},"containers":{"cna":{"title":"ice: add NULL check in eswitch lag check","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."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"27591d926191e42b2332e4bad3bcd3a49def393b","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"5a5d64f0eec82076b2c09fee2195d640cfbe3379","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"245917d3c5ed7c6ae720302b64eac5c6f0c85177","versionType":"git"},{"version":"776fe19953b0e0af00399e50fb3b205101d4b3c1","status":"affected","lessThan":"3ce58b01ada408b372f15b7c992ed0519840e3cf","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/ice/ice_lag.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.100","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.40","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.8","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/ice/ice_lag.c"]}],"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"}],"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."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:02:39.169Z"},"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"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2025-38526","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-15T21:51:23.742828Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T21:52:18.578Z"}}]}}}