CVE-2024-58239 (GCVE-0-2024-58239)
Vulnerability from cvelistv5 – Published: 2025-08-22 13:01 – Updated: 2026-10-15 21:51
VLAI
EPSS
VEX
Title
tls: stop recv() if initial process_rx_list gave us non-DATA
Summary
In the Linux kernel, the following vulnerability has been resolved:
tls: stop recv() if initial process_rx_list gave us non-DATA
If we have a non-DATA record on the rx_list and another record of the
same type still on the queue, we will end up merging them:
- process_rx_list copies the non-DATA record
- we start the loop and process the first available record since it's
of the same type
- we break out of the loop since the record was not DATA
Just check the record type and jump to the end in case process_rx_list
did some work.
Severity
8.2 (High)
SSVC
Exploitation: none
Automatable: yes
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-15 21:42 UTC
Assigner
References
7 references
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
692d7b5d1f9125a1cf0595e979e3b5fb7210547e , < f310143961e2d9a0479fca117ce869f8aaecc140
(git)
Affected: 692d7b5d1f9125a1cf0595e979e3b5fb7210547e , < 31e10d6cb0c9532ff070cf50da1657c3acee9276 (git) Affected: 692d7b5d1f9125a1cf0595e979e3b5fb7210547e , < 4338032aa90bd1d5b33a4274e8fa8347cda5ee09 (git) Affected: 692d7b5d1f9125a1cf0595e979e3b5fb7210547e , < 6756168add1c6c3ef1c32c335bb843a5d1f99a75 (git) Affected: 692d7b5d1f9125a1cf0595e979e3b5fb7210547e , < 3b952d8fdfcf6fd8ea0b8954bc9277642cf0977f (git) Affected: 692d7b5d1f9125a1cf0595e979e3b5fb7210547e , < a4ed943882a8fc057ea5a67643314245e048bbdd (git) Affected: 692d7b5d1f9125a1cf0595e979e3b5fb7210547e , < fdfbaec5923d9359698cbb286bc0deadbb717504 (git) |
guessed | |
| Linux | Linux |
Affected:
5.1
Unaffected: 0 , < 5.1 (semver) Unaffected: 5.4.270 , ≤ 5.4.* (semver) Unaffected: 5.10.211 , ≤ 5.10.* (semver) Unaffected: 5.15.150 , ≤ 5.15.* (semver) Unaffected: 6.1.80 , ≤ 6.1.* (semver) Unaffected: 6.6.19 , ≤ 6.6.* (semver) Unaffected: 6.7.7 , ≤ 6.7.* (semver) Unaffected: 6.8 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-58239",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-15T21:42:29.347860Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T21:51:51.549Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f310143961e2d9a0479fca117ce869f8aaecc140",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "31e10d6cb0c9532ff070cf50da1657c3acee9276",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "4338032aa90bd1d5b33a4274e8fa8347cda5ee09",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "6756168add1c6c3ef1c32c335bb843a5d1f99a75",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "3b952d8fdfcf6fd8ea0b8954bc9277642cf0977f",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "a4ed943882a8fc057ea5a67643314245e048bbdd",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "fdfbaec5923d9359698cbb286bc0deadbb717504",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"version": "5.4.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.211",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.150",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.80",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.19",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.7.*",
"status": "unaffected",
"version": "6.7.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.8",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.4.270",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.211",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.150",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.80",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.19",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.7.7",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.8",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntls: stop recv() if initial process_rx_list gave us non-DATA\n\nIf we have a non-DATA record on the rx_list and another record of the\nsame type still on the queue, we will end up merging them:\n - process_rx_list copies the non-DATA record\n - we start the loop and process the first available record since it\u0027s\n of the same type\n - we break out of the loop since the record was not DATA\n\nJust check the record type and jump to the end in case process_rx_list\ndid some work."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug lives in net/tls (kTLS) receive processing and is driven entirely by the sequence and types of TLS records a remote peer transmits over the network. Any kTLS-enabled endpoint (OpenSSL/nginx offload, NVMe-TCP target, NFS/RPC-with-TLS, tlshd-provisioned sockets) is reachable from the network.\nAC:L - The attacker simply sends two same-type non-DATA records back-to-back, and can force the required \"leftover record on rx_list\" precondition by making the first control record larger than the reader\u0027s buffer (partially_consumed \u2192 put_on_rx_list). There is no race, no memory-layout dependency, and no timing window to win.\nPR:N - The attacker only needs to be the TLS peer on an established session; on a public kTLS server the handshake is server-authenticated only, so any anonymous client can complete it and then emit arbitrary post-handshake alert/handshake records. No privileges or accounts on the target host are required.\nUI:N - The vulnerable path is the target\u0027s ordinary recvmsg() server loop; no victim action beyond normal socket reads is needed. The remote peer triggers it purely by its own record transmission pattern.\nS:U - The consequences are confined to the affected socket and the kernel/process security authority that owns it. No VM, IOMMU, or sandbox boundary is crossed.\nC:N - Only the attacker\u0027s own decrypted record payload is delivered to the consumer; all copies remain bounded by the caller-supplied len, so no kernel memory, uninitialized data, or other-session content is exposed.\nI:L - A remote peer can make the kernel coalesce two distinct TLS control records into one recvmsg() under a single TLS_GET_RECORD_TYPE cmsg with no intervening record boundary, corrupting the protocol message stream handed to the consumer \u2014 e.g. tls_alert_recv() parses only the first two bytes, letting a fatal alert be hidden behind a preceding warning alert. The modification is real but limited to attacker-supplied control-message framing, not arbitrary data or control-flow.\nA:H - With MSG_WAITALL, target is derived from the full requested length before len -= copied, so after process_rx_list returns a complete control record the loop re-enters tls_rx_rec_wait() and blocks indefinitely (default SO_RCVTIMEO of 0) instead of returning the record. The wedged reader holds ctx-\u003ereader_present, so every other thread reading that socket also stalls in tls_rx_reader_acquire(), and a remote peer can repeat this across connections to hang service threads."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T11:47:49.124Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f310143961e2d9a0479fca117ce869f8aaecc140"
},
{
"url": "https://git.kernel.org/stable/c/31e10d6cb0c9532ff070cf50da1657c3acee9276"
},
{
"url": "https://git.kernel.org/stable/c/4338032aa90bd1d5b33a4274e8fa8347cda5ee09"
},
{
"url": "https://git.kernel.org/stable/c/6756168add1c6c3ef1c32c335bb843a5d1f99a75"
},
{
"url": "https://git.kernel.org/stable/c/3b952d8fdfcf6fd8ea0b8954bc9277642cf0977f"
},
{
"url": "https://git.kernel.org/stable/c/a4ed943882a8fc057ea5a67643314245e048bbdd"
},
{
"url": "https://git.kernel.org/stable/c/fdfbaec5923d9359698cbb286bc0deadbb717504"
}
],
"title": "tls: stop recv() if initial process_rx_list gave us non-DATA",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2024-58239",
"datePublished": "2025-08-22T13:01:17.440Z",
"dateReserved": "2025-04-16T07:19:43.804Z",
"dateUpdated": "2026-10-15T21:51:51.549Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2024-58239",
"date": "2026-11-05",
"epss": "0.0036",
"percentile": "0.29942"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f310143961e2d9a0479fca117ce869f8aaecc140",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "31e10d6cb0c9532ff070cf50da1657c3acee9276",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "4338032aa90bd1d5b33a4274e8fa8347cda5ee09",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "6756168add1c6c3ef1c32c335bb843a5d1f99a75",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "3b952d8fdfcf6fd8ea0b8954bc9277642cf0977f",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "a4ed943882a8fc057ea5a67643314245e048bbdd",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "fdfbaec5923d9359698cbb286bc0deadbb717504",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"version": "5.4.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.211",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.150",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.80",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.19",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.7.*",
"status": "unaffected",
"version": "6.7.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.8",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "D84E662B-8585-476F-AC76-EA28993BDFD8",
"versionEndExcluding": "5.4.270",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "7DDA4DCF-671D-415D-94DF-6E3C77DF0704",
"versionEndExcluding": "5.10.211",
"versionStartIncluding": "5.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "CB6C60DE-9E0C-46C5-904D-D4F4031F8E95",
"versionEndExcluding": "5.15.150",
"versionStartIncluding": "5.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "BA7850CE-97C9-4408-A348-6173296BCA2B",
"versionEndExcluding": "6.1.80",
"versionStartIncluding": "5.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "8D82004C-B2AE-4048-9344-32EFF65953B0",
"versionEndExcluding": "6.6.19",
"versionStartIncluding": "6.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "575EE16B-67F2-4B5B-B5F8-1877715C898B",
"versionEndExcluding": "6.7.7",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:*",
"matchCriteriaId": "B9F4EA73-0894-400F-A490-3A397AB7A517",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:*",
"matchCriteriaId": "056BD938-0A27-4569-B391-30578B309EE3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:6.8:rc3:*:*:*:*:*:*",
"matchCriteriaId": "F02056A5-B362-4370-9FF8-6F0BD384D520",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:6.8:rc4:*:*:*:*:*:*",
"matchCriteriaId": "62075ACE-B2A0-4B16-829D-B3DA5AE5CC41",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:6.8:rc5:*:*:*:*:*:*",
"matchCriteriaId": "A780F817-2A77-4130-A9B7-5C25606314E3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntls: stop recv() if initial process_rx_list gave us non-DATA\n\nIf we have a non-DATA record on the rx_list and another record of the\nsame type still on the queue, we will end up merging them:\n - process_rx_list copies the non-DATA record\n - we start the loop and process the first available record since it\u0027s\n of the same type\n - we break out of the loop since the record was not DATA\n\nJust check the record type and jump to the end in case process_rx_list\ndid some work."
},
{
"lang": "es",
"value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: tls: detener recv() si el proceso inicial process_rx_list nos dio un valor que no es DATA Si tenemos un registro que no es DATA en rx_list y otro registro del mismo tipo todav\u00eda en la cola, terminaremos fusion\u00e1ndolos: - process_rx_list copia el registro que no es DATA - iniciamos el bucle y procesamos el primer registro disponible ya que es del mismo tipo - salimos del bucle ya que el registro no era DATA Simplemente verifique el tipo de registro y salte al final en caso de que process_rx_list haya hecho alg\u00fan trabajo."
}
],
"id": "CVE-2024-58239",
"lastModified": "2026-10-15T22:18:06.467",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 8.2,
"baseSeverity": "HIGH",
"confidentialityImpact": "NONE",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H",
"version": "3.1"
},
"exploitabilityScore": 3.9,
"impactScore": 4.2,
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"type": "Secondary"
},
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "HIGH",
"baseScore": 5.5,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "NONE",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"exploitabilityScore": 1.8,
"impactScore": 3.6,
"source": "nvd@nist.gov",
"type": "Primary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2024-58239",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-15T21:42:29.347860Z",
"version": "2.0.3"
}
}
]
},
"published": "2025-08-22T14:15:45.840",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/31e10d6cb0c9532ff070cf50da1657c3acee9276"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/3b952d8fdfcf6fd8ea0b8954bc9277642cf0977f"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/4338032aa90bd1d5b33a4274e8fa8347cda5ee09"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/6756168add1c6c3ef1c32c335bb843a5d1f99a75"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/a4ed943882a8fc057ea5a67643314245e048bbdd"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/f310143961e2d9a0479fca117ce869f8aaecc140"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/fdfbaec5923d9359698cbb286bc0deadbb717504"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Modified",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "NVD-CWE-noinfo"
}
],
"source": "nvd@nist.gov",
"type": "Primary"
}
]
}
},
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-10-16T22:54:11+00:00",
"cve": "CVE-2024-58239",
"id": "CVE-2024-58239",
"initial_release_date": "2024-01-01T00:00:00+00:00",
"product_status:fixed": "280",
"product_status:known_affected": "70",
"product_status:known_not_affected": "127",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: tls: stop recv() if initial process_rx_list gave us non-DATA",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-58239.json",
"version": "3"
},
"vulnrichment": {
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-58239",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-15T21:42:29.347860Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T21:42:30.270Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f310143961e2d9a0479fca117ce869f8aaecc140",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "31e10d6cb0c9532ff070cf50da1657c3acee9276",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "4338032aa90bd1d5b33a4274e8fa8347cda5ee09",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "6756168add1c6c3ef1c32c335bb843a5d1f99a75",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "3b952d8fdfcf6fd8ea0b8954bc9277642cf0977f",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "a4ed943882a8fc057ea5a67643314245e048bbdd",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
},
{
"lessThan": "fdfbaec5923d9359698cbb286bc0deadbb717504",
"status": "affected",
"version": "692d7b5d1f9125a1cf0595e979e3b5fb7210547e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"lessThan": "5.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"version": "5.4.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.211",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.150",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.80",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.19",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.7.*",
"status": "unaffected",
"version": "6.7.7",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.8",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.4.270",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.211",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.150",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.80",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.19",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.7.7",
"versionStartIncluding": "5.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.8",
"versionStartIncluding": "5.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntls: stop recv() if initial process_rx_list gave us non-DATA\n\nIf we have a non-DATA record on the rx_list and another record of the\nsame type still on the queue, we will end up merging them:\n - process_rx_list copies the non-DATA record\n - we start the loop and process the first available record since it\u0027s\n of the same type\n - we break out of the loop since the record was not DATA\n\nJust check the record type and jump to the end in case process_rx_list\ndid some work."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.2,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug lives in net/tls (kTLS) receive processing and is driven entirely by the sequence and types of TLS records a remote peer transmits over the network. Any kTLS-enabled endpoint (OpenSSL/nginx offload, NVMe-TCP target, NFS/RPC-with-TLS, tlshd-provisioned sockets) is reachable from the network.\nAC:L - The attacker simply sends two same-type non-DATA records back-to-back, and can force the required \"leftover record on rx_list\" precondition by making the first control record larger than the reader\u0027s buffer (partially_consumed \u2192 put_on_rx_list). There is no race, no memory-layout dependency, and no timing window to win.\nPR:N - The attacker only needs to be the TLS peer on an established session; on a public kTLS server the handshake is server-authenticated only, so any anonymous client can complete it and then emit arbitrary post-handshake alert/handshake records. No privileges or accounts on the target host are required.\nUI:N - The vulnerable path is the target\u0027s ordinary recvmsg() server loop; no victim action beyond normal socket reads is needed. The remote peer triggers it purely by its own record transmission pattern.\nS:U - The consequences are confined to the affected socket and the kernel/process security authority that owns it. No VM, IOMMU, or sandbox boundary is crossed.\nC:N - Only the attacker\u0027s own decrypted record payload is delivered to the consumer; all copies remain bounded by the caller-supplied len, so no kernel memory, uninitialized data, or other-session content is exposed.\nI:L - A remote peer can make the kernel coalesce two distinct TLS control records into one recvmsg() under a single TLS_GET_RECORD_TYPE cmsg with no intervening record boundary, corrupting the protocol message stream handed to the consumer \u2014 e.g. tls_alert_recv() parses only the first two bytes, letting a fatal alert be hidden behind a preceding warning alert. The modification is real but limited to attacker-supplied control-message framing, not arbitrary data or control-flow.\nA:H - With MSG_WAITALL, target is derived from the full requested length before len -= copied, so after process_rx_list returns a complete control record the loop re-enters tls_rx_rec_wait() and blocks indefinitely (default SO_RCVTIMEO of 0) instead of returning the record. The wedged reader holds ctx-\u003ereader_present, so every other thread reading that socket also stalls in tls_rx_reader_acquire(), and a remote peer can repeat this across connections to hang service threads."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T11:47:49.124Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f310143961e2d9a0479fca117ce869f8aaecc140"
},
{
"url": "https://git.kernel.org/stable/c/31e10d6cb0c9532ff070cf50da1657c3acee9276"
},
{
"url": "https://git.kernel.org/stable/c/4338032aa90bd1d5b33a4274e8fa8347cda5ee09"
},
{
"url": "https://git.kernel.org/stable/c/6756168add1c6c3ef1c32c335bb843a5d1f99a75"
},
{
"url": "https://git.kernel.org/stable/c/3b952d8fdfcf6fd8ea0b8954bc9277642cf0977f"
},
{
"url": "https://git.kernel.org/stable/c/a4ed943882a8fc057ea5a67643314245e048bbdd"
},
{
"url": "https://git.kernel.org/stable/c/fdfbaec5923d9359698cbb286bc0deadbb717504"
}
],
"title": "tls: stop recv() if initial process_rx_list gave us non-DATA",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2024-58239",
"datePublished": "2025-08-22T13:01:17.440Z",
"dateReserved": "2025-04-16T07:19:43.804Z",
"dateUpdated": "2026-10-15T21:51:51.549Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.