{"id":"CVE-2025-21890","state":"PUBLISHED","title":"idpf: fix checksums set in idpf_rx_rsc()","description":"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)","publishedAt":"2025-03-27T14:57:16.525Z","updatedAt":"2026-10-15T21:51:55.120Z","severity":{"score":8.2,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","status":"affected","lessThan":"4279bbebe00ffdbfd1a77567961886e35465cbdc","versionType":"git"},{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","status":"affected","lessThan":"57e68f256911f3ab4b997141975561646ccbbb8c","versionType":"git"},{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","status":"affected","lessThan":"674fcb4f4a7e3e277417a01788cc6daae47c3804","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/idpf/idpf_txrx.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.7","versionType":"semver"},{"version":"6.12.18","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.6","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","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/idpf/idpf_txrx.c"]}],"references":["https://git.kernel.org/stable/c/4279bbebe00ffdbfd1a77567961886e35465cbdc","https://git.kernel.org/stable/c/57e68f256911f3ab4b997141975561646ccbbb8c","https://git.kernel.org/stable/c/674fcb4f4a7e3e277417a01788cc6daae47c3804"],"weaknesses":[],"ingestedAt":"2026-10-29T20:08:39.238Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/21xxx/CVE-2025-21890.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-21890","state":"PUBLISHED","datePublished":"2025-03-27T14:57:16.525Z","dateUpdated":"2026-10-15T21:51:55.120Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-12-29T08:45:45.783Z"},"containers":{"cna":{"title":"idpf: fix checksums set in idpf_rx_rsc()","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)"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","status":"affected","lessThan":"4279bbebe00ffdbfd1a77567961886e35465cbdc","versionType":"git"},{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","status":"affected","lessThan":"57e68f256911f3ab4b997141975561646ccbbb8c","versionType":"git"},{"version":"3a8845af66edb340ba9210bb8a0da040c7d6e590","status":"affected","lessThan":"674fcb4f4a7e3e277417a01788cc6daae47c3804","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/ethernet/intel/idpf/idpf_txrx.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.7","versionType":"semver"},{"version":"6.12.18","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.6","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","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/idpf/idpf_txrx.c"]}],"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"}],"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."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:55:11.156Z"},"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"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2025-21890","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-15T21:43:37.253715Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T21:51:55.120Z"}}]}}}