{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-56590", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-12-27T14:03:06.002Z", "datePublished": "2024-12-27T14:50:57.854Z", "dateUpdated": "2026-08-05T11:45:12.714Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:45:12.714Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_core: Fix not checking skb length on hci_acldata_packet\n\nThis fixes not checking if skb really contains an ACL header otherwise\nthe code may attempt to access some uninitilized/invalid memory past the\nvalid skb->data." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H", "baseScore": 7.6, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:A - The malformed short ACL frame enters through the Bluetooth HCI receive path; hci_h5, hci_bcsp, btsdio, btqcomsmd and virtio_bt all hand ACL payloads to hci_recv_frame() with no minimum-length check, so a hostile or RF-compromised controller within wireless range reaches the vulnerable parser. This matches the established treatment of hci_core/hci_event RX-path parsing bugs as Adjacent.\nAC:L - A single ACL frame with a payload shorter than 4 bytes deterministically triggers the unchecked read — no race, no timing window, and no dependence on memory layout the attacker cannot influence.\nPR:N - hci_acldata_packet() runs on every received ACL frame before any Bluetooth pairing, encryption or L2CAP channel authentication, and the transport-side attacker holds no host account or capability. (The local /dev/vhci and N_HCI ldisc variants require root/CAP_NET_ADMIN in the init namespace, so the unauthenticated transport path is the more severe one.)\nUI:N - Frames are consumed automatically by the hci_rx_work workqueue as soon as the Bluetooth adapter is up; no victim action of any kind is needed.\nS:U - The invalid read and the resulting state corruption are entirely within the kernel's own security authority; no VM, IOMMU or sandbox boundary is crossed.\nC:L - Up to two bytes of uninitialized/out-of-bounds heap memory past skb->data are read into the handle field and disclosed to the kernel log via bt_dev_err(\"ACL packet for unknown connection handle %d\"). The disclosure is real but strictly bounded to a couple of bytes, not an arbitrary read.\nI:L - Because skb_pull() fails silently, the uninitialized handle selects an arbitrary existing hci_conn and the uninitialized flags inject the unstripped header bytes into that unrelated connection's L2CAP reassembly buffer, discarding or corrupting its pending frame. This is bounded state modification, not an arbitrary write.\nA:H - The bogus ACL_START/ACL_CONT fragments drive l2cap_recv_reset() and l2cap_conn_unreliable(ECOMM) on a victim connection, tearing down an unrelated Bluetooth link, and the attack is repeatable without limit; on KASAN/KMSAN-instrumented or panic-on-warn hardened builds the invalid access is itself fatal." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/bluetooth/hci_core.c" ], "versions": [ { "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "lessThan": "219960a48771b35a3857a491b955c31d6c33d581", "status": "affected", "versionType": "git" }, { "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "lessThan": "559b1c7ac2e212a23b3833d3baf3bd957771d02e", "status": "affected", "versionType": "git" }, { "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "lessThan": "5e50d12cc6e95e1fde08f5db6992b616f714b0fb", "status": "affected", "versionType": "git" }, { "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "lessThan": "93a6160dc198ffe5786da8bd8588cfd17f53b29a", "status": "affected", "versionType": "git" }, { "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2", "lessThan": "3fe288a8214e7dd784d1f9b7c9e448244d316b47", "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/bluetooth/hci_core.c" ], "versions": [ { "version": "2.6.12", "status": "affected" }, { "version": "0", "lessThan": "2.6.12", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.174", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.120", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.66", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.5", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.13", "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": "2.6.12", "versionEndExcluding": "5.15.174" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.12", "versionEndExcluding": "6.1.120" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.12", "versionEndExcluding": "6.6.66" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.12", "versionEndExcluding": "6.12.5" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.12", "versionEndExcluding": "6.13" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/219960a48771b35a3857a491b955c31d6c33d581" }, { "url": "https://git.kernel.org/stable/c/559b1c7ac2e212a23b3833d3baf3bd957771d02e" }, { "url": "https://git.kernel.org/stable/c/5e50d12cc6e95e1fde08f5db6992b616f714b0fb" }, { "url": "https://git.kernel.org/stable/c/93a6160dc198ffe5786da8bd8588cfd17f53b29a" }, { "url": "https://git.kernel.org/stable/c/3fe288a8214e7dd784d1f9b7c9e448244d316b47" } ], "title": "Bluetooth: hci_core: Fix not checking skb length on hci_acldata_packet", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T20:50:14.000Z" } } ] } }