{
    "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"
            }
        }
    }
}