{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-21890","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-12-29T08:45:45.783Z","datePublished":"2025-03-27T14:57:16.525Z","dateUpdated":"2026-08-05T11:55:11.156Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:55:11.156Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nidpf: fix checksums set in idpf_rx_rsc()\n\nidpf_rx_rsc() uses skb_transport_offset(skb) while the transport header\nis not set yet.\n\nThis triggers the following warning for CONFIG_DEBUG_NET=y builds.\n\nDEBUG_NET_WARN_ON_ONCE(!skb_transport_header_was_set(skb))\n\n[   69.261620] WARNING: CPU: 7 PID: 0 at ./include/linux/skbuff.h:3020 idpf_vport_splitq_napi_poll (include/linux/skbuff.h:3020) idpf\n[   69.261629] Modules linked in: vfat fat dummy bridge intel_uncore_frequency_tpmi intel_uncore_frequency_common intel_vsec_tpmi idpf intel_vsec cdc_ncm cdc_eem cdc_ether usbnet mii xhci_pci xhci_hcd ehci_pci ehci_hcd libeth\n[   69.261644] CPU: 7 UID: 0 PID: 0 Comm: swapper/7 Tainted: G S      W          6.14.0-smp-DEV #1697\n[   69.261648] Tainted: [S]=CPU_OUT_OF_SPEC, [W]=WARN\n[   69.261650] RIP: 0010:idpf_vport_splitq_napi_poll (include/linux/skbuff.h:3020) idpf\n[   69.261677] ? __warn (kernel/panic.c:242 kernel/panic.c:748)\n[   69.261682] ? idpf_vport_splitq_napi_poll (include/linux/skbuff.h:3020) idpf\n[   69.261687] ? report_bug (lib/bug.c:?)\n[   69.261690] ? handle_bug (arch/x86/kernel/traps.c:285)\n[   69.261694] ? exc_invalid_op (arch/x86/kernel/traps.c:309)\n[   69.261697] ? asm_exc_invalid_op (arch/x86/include/asm/idtentry.h:621)\n[   69.261700] ? __pfx_idpf_vport_splitq_napi_poll (drivers/net/ethernet/intel/idpf/idpf_txrx.c:4011) idpf\n[   69.261704] ? idpf_vport_splitq_napi_poll (include/linux/skbuff.h:3020) idpf\n[   69.261708] ? idpf_vport_splitq_napi_poll (drivers/net/ethernet/intel/idpf/idpf_txrx.c:3072) idpf\n[   69.261712] __napi_poll (net/core/dev.c:7194)\n[   69.261716] net_rx_action (net/core/dev.c:7265)\n[   69.261718] ? __qdisc_run (net/sched/sch_generic.c:293)\n[   69.261721] ? sched_clock (arch/x86/include/asm/preempt.h:84 arch/x86/kernel/tsc.c:288)\n[   69.261726] handle_softirqs (kernel/softirq.c:561)"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","baseScore":8.2,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable code is in the idpf receive fast path, reached from NAPI poll whenever the NIC hardware marks a coalesced TCP packet with the RSC descriptor bit. A remote attacker triggers it simply by sending a TCP stream to the host, with no local access of any kind.\nAC:L - Any ordinary TCP flow large enough to be hardware-coalesced enters idpf_rx_rsc(), and the miscomputed length is deterministic — no race, no memory-layout dependency, no timing window. Hardware GRO is a supported, commonly enabled offload on this class of infrastructure NIC, which CVSS 3.1 directs be assumed as the reasonable worst-case deployment configuration.\nPR:N - The path runs in softirq/NAPI context on packet receive, entirely before any socket lookup, authentication, or credential check. An unauthenticated remote peer reaches it with plain TCP traffic.\nUI:N - The bug triggers automatically during packet reception; no local user or administrator has to open, mount, or interact with anything for the incorrect checksum to be written.\nS:U - The defect and its effects are confined to the kernel networking stack of the receiving host — the corrupted skb and its checksum stay within the same security authority, with no crossing of a hypervisor, IOMMU, or sandbox boundary.\nC:N - The stale transport-header sentinel is only used in pointer subtraction and then as a scalar in csum_tcpudp_magic(); it is never dereferenced, so there is no out-of-bounds read and no kernel memory or address is exposed.\nI:L - The kernel writes an incorrect TCP checksum into the packet, and tcp_gso_segment() propagates that poisoned seed into every segment emitted on re-segmentation, so a forwarding host transmits corrupted TCP headers. The modification is confined to the checksum field and is not attacker-directed, so the integrity loss is limited rather than arbitrary.\nA:H - On CONFIG_DEBUG_NET builds this fires a WARN in softirq context, which is a kernel panic under the panic_on_warn setting common in hardened and cloud fleets. Independently of that config, every re-segmented TCP packet leaves with a bad checksum and is discarded by the peer, causing complete loss of TCP connectivity through an idpf-equipped router, bridge, or hypervisor — a denial of service a remote attacker can induce at will by sending traffic."}]}],"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/idpf/idpf_txrx.c"],"versions":[{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","lessThan":"4279bbebe00ffdbfd1a77567961886e35465cbdc","status":"affected","versionType":"git"},{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","lessThan":"57e68f256911f3ab4b997141975561646ccbbb8c","status":"affected","versionType":"git"},{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","lessThan":"674fcb4f4a7e3e277417a01788cc6daae47c3804","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/idpf/idpf_txrx.c"],"versions":[{"version":"6.7","status":"affected"},{"version":"0","lessThan":"6.7","status":"unaffected","versionType":"semver"},{"version":"6.12.18","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.13.6","lessThanOrEqual":"6.13.*","status":"unaffected","versionType":"semver"},{"version":"6.14","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.7","versionEndExcluding":"6.12.18"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7","versionEndExcluding":"6.13.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7","versionEndExcluding":"6.14"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/4279bbebe00ffdbfd1a77567961886e35465cbdc"},{"url":"https://git.kernel.org/stable/c/57e68f256911f3ab4b997141975561646ccbbb8c"},{"url":"https://git.kernel.org/stable/c/674fcb4f4a7e3e277417a01788cc6daae47c3804"}],"title":"idpf: fix checksums set in idpf_rx_rsc()","x_generator":{"engine":"bippy-1.2.0"}}}}