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