256 lines
14 KiB
JSON
256 lines
14 KiB
JSON
{
|
||
"dataType": "CVE_RECORD",
|
||
"dataVersion": "5.2",
|
||
"cveMetadata": {
|
||
"cveId": "CVE-2022-49094",
|
||
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
||
"state": "PUBLISHED",
|
||
"assignerShortName": "Linux",
|
||
"dateReserved": "2025-02-26T01:49:39.249Z",
|
||
"datePublished": "2025-02-26T01:54:48.163Z",
|
||
"dateUpdated": "2026-10-15T21:21:06.791Z"
|
||
},
|
||
"containers": {
|
||
"cna": {
|
||
"providerMetadata": {
|
||
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
||
"shortName": "Linux",
|
||
"dateUpdated": "2026-08-05T08:53:54.079Z"
|
||
},
|
||
"descriptions": [
|
||
{
|
||
"lang": "en",
|
||
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/tls: fix slab-out-of-bounds bug in decrypt_internal\n\nThe memory size of tls_ctx->rx.iv for AES128-CCM is 12 setting in\ntls_set_sw_offload(). The return value of crypto_aead_ivsize()\nfor \"ccm(aes)\" is 16. So memcpy() require 16 bytes from 12 bytes\nmemory space will trigger slab-out-of-bounds bug as following:\n\n==================================================================\nBUG: KASAN: slab-out-of-bounds in decrypt_internal+0x385/0xc40 [tls]\nRead of size 16 at addr ffff888114e84e60 by task tls/10911\n\nCall Trace:\n <TASK>\n dump_stack_lvl+0x34/0x44\n print_report.cold+0x5e/0x5db\n ? decrypt_internal+0x385/0xc40 [tls]\n kasan_report+0xab/0x120\n ? decrypt_internal+0x385/0xc40 [tls]\n kasan_check_range+0xf9/0x1e0\n memcpy+0x20/0x60\n decrypt_internal+0x385/0xc40 [tls]\n ? tls_get_rec+0x2e0/0x2e0 [tls]\n ? process_rx_list+0x1a5/0x420 [tls]\n ? tls_setup_from_iter.constprop.0+0x2e0/0x2e0 [tls]\n decrypt_skb_update+0x9d/0x400 [tls]\n tls_sw_recvmsg+0x3c8/0xb50 [tls]\n\nAllocated by task 10911:\n kasan_save_stack+0x1e/0x40\n __kasan_kmalloc+0x81/0xa0\n tls_set_sw_offload+0x2eb/0xa20 [tls]\n tls_setsockopt+0x68c/0x700 [tls]\n __sys_setsockopt+0xfe/0x1b0\n\nReplace the crypto_aead_ivsize() with prot->iv_size + prot->salt_size\nwhen memcpy() iv value in TLS_1_3_VERSION scenario."
|
||
}
|
||
],
|
||
"metrics": [
|
||
{
|
||
"cvssV3_1": {
|
||
"version": "3.1",
|
||
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
|
||
"baseScore": 9.8,
|
||
"baseSeverity": "CRITICAL"
|
||
},
|
||
"scenarios": [
|
||
{
|
||
"lang": "en",
|
||
"value": "AV:N - The bug is in kTLS software RX decrypt_internal(), reached when decrypting TLS records on an established kTLS socket; a remote TLS peer’s application data drives tls_sw_recvmsg → decrypt_skb_update → decrypt_internal on network-facing kTLS services (including embedded/IoT AES-CCM deployments).\nAC:L - For TLS 1.3 AES-CCM-128 (or SM4-CCM), every decrypt reliably performs the oversized memcpy; the attacker only needs to send TLS records to a socket already configured with that cipher, with no race or uncontrollable timing.\nPR:N - A remote client needs no local account or capability on the victim host; there is no authentication gate on the kTLS decrypt path beyond being a peer on the TLS connection.\nUI:N - No separate victim action is required; normal automated receive/decrypt of attacker-sent TLS records triggers the bug.\nS:U - Impact is kernel heap corruption within the same host/kernel security authority, not a VM escape, IOMMU bypass, or other cross-boundary compromise.\nC:H - The memcpy both reads 4 bytes past the 12-byte rx.iv allocation (heap adjacent/padding contents enter the IV) and, with CCM iv_offset=1, writes one byte past the destination IV buffer—memory corruption that can be leveraged for information disclosure.\nI:H - The destination overrun is a heap out-of-bounds write past the decrypt scratch allocation, which is exploitable memory corruption consistent with integrity compromise or control-flow hijacking.\nA:H - KASAN reports a slab-out-of-bounds fault in decrypt_internal, and the heap corruption can cause kernel oops/panic when adjacent objects are corrupted."
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"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": "f295b3ae9f5927e084bd5decdff82390e3471801",
|
||
"lessThan": "2b7d14c105dd8f6412eda5a91e1e6154653731e3",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "f295b3ae9f5927e084bd5decdff82390e3471801",
|
||
"lessThan": "589154d0f18945f41d138a5b4e49e518d294474b",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "f295b3ae9f5927e084bd5decdff82390e3471801",
|
||
"lessThan": "6e2f1b033b17dedda51d465861b69e58317d6343",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "f295b3ae9f5927e084bd5decdff82390e3471801",
|
||
"lessThan": "29be1816cbab9a0dc6243120939fd10a92753756",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "f295b3ae9f5927e084bd5decdff82390e3471801",
|
||
"lessThan": "2304660ab6c425df64d95301b601424c6a50f28b",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "f295b3ae9f5927e084bd5decdff82390e3471801",
|
||
"lessThan": "9381fe8c849cfbe50245ac01fc077554f6eaa0e2",
|
||
"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.2",
|
||
"status": "affected"
|
||
},
|
||
{
|
||
"version": "0",
|
||
"lessThan": "5.2",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.4.189",
|
||
"lessThanOrEqual": "5.4.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.10.111",
|
||
"lessThanOrEqual": "5.10.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.15.34",
|
||
"lessThanOrEqual": "5.15.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.16.20",
|
||
"lessThanOrEqual": "5.16.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.17.3",
|
||
"lessThanOrEqual": "5.17.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.18",
|
||
"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.2",
|
||
"versionEndExcluding": "5.4.189"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "5.2",
|
||
"versionEndExcluding": "5.10.111"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "5.2",
|
||
"versionEndExcluding": "5.15.34"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "5.2",
|
||
"versionEndExcluding": "5.16.20"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "5.2",
|
||
"versionEndExcluding": "5.17.3"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "5.2",
|
||
"versionEndExcluding": "5.18"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"references": [
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/2b7d14c105dd8f6412eda5a91e1e6154653731e3"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/589154d0f18945f41d138a5b4e49e518d294474b"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/6e2f1b033b17dedda51d465861b69e58317d6343"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/29be1816cbab9a0dc6243120939fd10a92753756"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/2304660ab6c425df64d95301b601424c6a50f28b"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/9381fe8c849cfbe50245ac01fc077554f6eaa0e2"
|
||
}
|
||
],
|
||
"title": "net/tls: fix slab-out-of-bounds bug in decrypt_internal",
|
||
"x_generator": {
|
||
"engine": "bippy-1.2.0"
|
||
}
|
||
},
|
||
"adp": [
|
||
{
|
||
"metrics": [
|
||
{
|
||
"other": {
|
||
"type": "ssvc",
|
||
"content": {
|
||
"id": "CVE-2022-49094",
|
||
"role": "CISA Coordinator",
|
||
"options": [
|
||
{
|
||
"Exploitation": "none"
|
||
},
|
||
{
|
||
"Automatable": "yes"
|
||
},
|
||
{
|
||
"Technical Impact": "total"
|
||
}
|
||
],
|
||
"version": "2.0.3",
|
||
"timestamp": "2026-10-15T21:17:38.615000Z"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"title": "CISA ADP Vulnrichment",
|
||
"providerMetadata": {
|
||
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
||
"shortName": "CISA-ADP",
|
||
"dateUpdated": "2026-10-15T21:21:06.791Z"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
} |