{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-38331", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-04-16T04:51:24.005Z", "datePublished": "2025-07-10T08:15:04.436Z", "dateUpdated": "2026-08-05T12:01:10.671Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:01:10.671Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: cortina: Use TOE/TSO on all TCP\n\nIt is desireable to push the hardware accelerator to also\nprocess non-segmented TCP frames: we pass the skb->len\nto the \"TOE/TSO\" offloader and it will handle them.\n\nWithout this quirk the driver becomes unstable and lock\nup and and crash.\n\nI do not know exactly why, but it is probably due to the\nTOE (TCP offload engine) feature that is coupled with the\nsegmentation feature - it is not possible to turn one\npart off and not the other, either both TOE and TSO are\nactive, or neither of them.\n\nNot having the TOE part active seems detrimental, as if\nthat hardware feature is not really supposed to be turned\noff.\n\nThe datasheet says:\n\n \"Based on packet parsing and TCP connection/NAT table\n lookup results, the NetEngine puts the packets\n belonging to the same TCP connection to the same queue\n for the software to process. The NetEngine puts\n incoming packets to the buffer or series of buffers\n for a jumbo packet. With this hardware acceleration,\n IP/TCP header parsing, checksum validation and\n connection lookup are offloaded from the software\n processing.\"\n\nAfter numerous tests with the hardware locking up after\nsomething between minutes and hours depending on load\nusing iperf3 I have concluded this is necessary to stabilize\nthe hardware." } ], "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 code is the ordinary TX path of an ethernet driver, reached by any TCP frame the device transmits — including RSTs to closed ports and ACKs for inbound data — so a remote attacker anywhere on a routable path can drive it. Gemini/SL351x SoCs ship in internet-facing routers and NAS appliances where this is the primary network interface.\nAC:L - The trigger is sustained TCP traffic, a condition entirely under the attacker's control; the maintainer reproduced the lockup reliably with iperf3, with time-to-failure scaling directly with offered load. Nothing about the trigger depends on state the attacker cannot influence.\nPR:N - No privilege, credential, or capability check exists anywhere between packet arrival and gmac_map_tx_bufs(); even unsolicited SYNs to closed ports produce TCP RSTs that traverse the buggy path. An unauthenticated remote attacker needs no account on the device.\nUI:N - Exploitation requires only that the attacker generate TCP traffic to or through the device; no victim action, configuration change, or interaction is needed.\nS:U - The lockup is confined to the kernel/device security authority of the affected system, with no crossing into another security scope such as a hypervisor or IOMMU boundary.\nC:N - The defect is a misconfigured hardware offload bit that wedges the TOE/TSO engine; no memory is over-read and no kernel data is exposed to the attacker.\nI:N - No memory corruption, out-of-bounds write, or control-flow influence results — the descriptor ring indices remain masked and the mapping-error unwind is intact. Large-frame checksum truncation was already avoided pre-fix via TSS_BYPASS_BIT plus skb_checksum_help().\nA:H - The commit states the hardware locks up and the driver becomes unstable and crashes under TCP load, and gmac_tx_timeout() only dumps DMA state without resetting the engine, so the interface stays permanently dead until reboot. This is a remotely-induced, persistent denial of service on the device's primary network path." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/ethernet/cortina/gemini.c" ], "versions": [ { "version": "4d5ae32f5e1e13f7f36d6439ec3257993b9f5b88", "lessThan": "1b503b790109d19710ec83c589c3ee59e95347ec", "status": "affected", "versionType": "git" }, { "version": "4d5ae32f5e1e13f7f36d6439ec3257993b9f5b88", "lessThan": "a37888a435b0737128d2d9c6f67b8d608f83df7a", "status": "affected", "versionType": "git" }, { "version": "4d5ae32f5e1e13f7f36d6439ec3257993b9f5b88", "lessThan": "2bd434bb0eeb680c2b3dd6c68ca319b30cb8d47f", "status": "affected", "versionType": "git" }, { "version": "4d5ae32f5e1e13f7f36d6439ec3257993b9f5b88", "lessThan": "ebe12e232f1d58ebb4b53b6d9149962b707bed91", "status": "affected", "versionType": "git" }, { "version": "4d5ae32f5e1e13f7f36d6439ec3257993b9f5b88", "lessThan": "6a07e3af4973402fa199a80036c10060b922c92c", "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/cortina/gemini.c" ], "versions": [ { "version": "4.16", "status": "affected" }, { "version": "0", "lessThan": "4.16", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.142", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.95", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.35", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.15.4", "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": "4.16", "versionEndExcluding": "6.1.142" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.16", "versionEndExcluding": "6.6.95" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.16", "versionEndExcluding": "6.12.35" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.16", "versionEndExcluding": "6.15.4" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.16", "versionEndExcluding": "6.16" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/1b503b790109d19710ec83c589c3ee59e95347ec" }, { "url": "https://git.kernel.org/stable/c/a37888a435b0737128d2d9c6f67b8d608f83df7a" }, { "url": "https://git.kernel.org/stable/c/2bd434bb0eeb680c2b3dd6c68ca319b30cb8d47f" }, { "url": "https://git.kernel.org/stable/c/ebe12e232f1d58ebb4b53b6d9149962b707bed91" }, { "url": "https://git.kernel.org/stable/c/6a07e3af4973402fa199a80036c10060b922c92c" } ], "title": "net: ethernet: cortina: Use TOE/TSO on all TCP", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T17:36:39.991Z" } } ] } }