{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-38608", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-04-16T04:51:24.028Z", "datePublished": "2025-08-19T17:03:51.688Z", "dateUpdated": "2026-08-05T12:03:28.203Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:03:28.203Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf, ktls: Fix data corruption when using bpf_msg_pop_data() in ktls\n\nWhen sending plaintext data, we initially calculated the corresponding\nciphertext length. However, if we later reduced the plaintext data length\nvia socket policy, we failed to recalculate the ciphertext length.\n\nThis results in transmitting buffers containing uninitialized data during\nciphertext transmission.\n\nThis causes uninitialized bytes to be appended after a complete\n\"Application Data\" packet, leading to errors on the receiving end when\nparsing TLS record." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L", "baseScore": 8.6, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:N - The un-trimmed `msg_encrypted` tail is spliced into the TCP stream by `tls_push_sg()`, so the uninitialized kernel memory is delivered in cleartext to the remote TLS peer over the network. A remote client of a kTLS-offloaded service receives the leak simply by driving responses on the connection.\nAC:L - The mismatch is deterministic — any `bpf_msg_pop_data()` call makes `msg_encrypted` larger than the encrypted output, and every subsequent record leaks — with no race, timing window, or memory-layout condition to win. The required sockmap/SK_MSG/kTLS setup is the affected configuration, not a condition the attacker must overcome.\nPR:N - The party receiving the leaked kernel memory is the remote TLS peer, which needs no credentials on the target — an unauthenticated client that merely opens a connection and elicits a response gets the uninitialized bytes appended to the stream.\nUI:N - No victim action is needed; the corruption happens automatically inside `bpf_exec_tx_verdict()`/`tls_push_record()` on every transmit through the affected path.\nS:U - The defect and its impact stay within the kernel's own security authority — leaked memory and the corrupted socket stream are managed by the same vulnerable component, with no VM, IOMMU, or sandbox boundary crossed.\nC:H - Up to a full record (~16 KB) of never-initialized page-frag memory is transmitted per record and repeats indefinitely; those pages come unzeroed from `skb_page_frag_refill()`/the buddy allocator and can hold other sockets' or processes' data, including other kTLS sessions' plaintext, disclosed in the clear outside the AEAD.\nI:L - The application's outbound byte stream is corrupted with bytes it never sent, but the attacker does not control the injected content and the TLS AEAD prevents it from being accepted as valid application data by the receiver.\nA:L - The trailing garbage desynchronizes the peer's TLS record parser, causing record-parse errors and teardown of the affected connection, but there is no kernel oops, hang, or system-wide denial of service." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/tls/tls_sw.c" ], "versions": [ { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "6ba20ff3cdb96a908b9dc93cf247d0b087672e7c", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "849d24dc5aed45ebeb3490df429356739256ac40", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "73fc5d04009d3969ff8e8574f0fd769f04124e59", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "16aca8bb4ad0d8a13c8b6da4007f4e52d53035bb", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "0e853c1464bcf61207f8b5c32d2ac5ee495e859d", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "ee03766d79de0f61ea29ffb6ab1c7b196ea1b02e", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "90d6ef67440cec2a0aad71a0108c8f216437345c", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "1e480387d4b42776f8957fb148af9d75ce93b96d", "status": "affected", "versionType": "git" }, { "version": "7246d8ed4dcce23f7509949a77be15fa9f0e3d28", "lessThan": "178f6a5c8cb3b6be1602de0964cd440243f493c9", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/tls/tls_sw.c" ], "versions": [ { "version": "5.0", "status": "affected" }, { "version": "0", "lessThan": "5.0", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.297", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.241", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.190", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.148", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.102", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.42", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.15.10", "lessThanOrEqual": "6.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.16.1", "lessThanOrEqual": "6.16.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.17", "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": "5.0", "versionEndExcluding": "5.4.297" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "5.10.241" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "5.15.190" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "6.1.148" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "6.6.102" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "6.12.42" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "6.15.10" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "6.16.1" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.0", "versionEndExcluding": "6.17" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/6ba20ff3cdb96a908b9dc93cf247d0b087672e7c" }, { "url": "https://git.kernel.org/stable/c/849d24dc5aed45ebeb3490df429356739256ac40" }, { "url": "https://git.kernel.org/stable/c/73fc5d04009d3969ff8e8574f0fd769f04124e59" }, { "url": "https://git.kernel.org/stable/c/16aca8bb4ad0d8a13c8b6da4007f4e52d53035bb" }, { "url": "https://git.kernel.org/stable/c/0e853c1464bcf61207f8b5c32d2ac5ee495e859d" }, { "url": "https://git.kernel.org/stable/c/ee03766d79de0f61ea29ffb6ab1c7b196ea1b02e" }, { "url": "https://git.kernel.org/stable/c/90d6ef67440cec2a0aad71a0108c8f216437345c" }, { "url": "https://git.kernel.org/stable/c/1e480387d4b42776f8957fb148af9d75ce93b96d" }, { "url": "https://git.kernel.org/stable/c/178f6a5c8cb3b6be1602de0964cd440243f493c9" } ], "title": "bpf, ktls: Fix data corruption when using bpf_msg_pop_data() in ktls", "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" }, { "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T17:40:21.692Z" } } ] } }