{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-56531", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-12-27T14:03:05.984Z", "datePublished": "2024-12-27T14:11:14.161Z", "dateUpdated": "2026-08-05T11:44:54.186Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:44:54.186Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: caiaq: Use snd_card_free_when_closed() at disconnection\n\nThe USB disconnect callback is supposed to be short and not too-long\nwaiting. OTOH, the current code uses snd_card_free() at\ndisconnection, but this waits for the close of all used fds, hence it\ncan take long. It eventually blocks the upper layer USB ioctls, which\nmay trigger a soft lockup.\n\nAn easy workaround is to replace snd_card_free() with\nsnd_card_free_when_closed(). This variant returns immediately while\nthe release of resources is done asynchronously by the card device\nrelease at the last close.\n\nThis patch also splits the code to the disconnect and the free phases;\nthe former is called immediately at the USB disconnect callback while\nthe latter is called from the card destructor." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerability is driven by a local unprivileged process holding open file descriptors on the card's `/dev/snd/*` nodes, which is what stalls the disconnect callback and leaves freed URBs reachable. No network path exists, and the kernel CNA consistently scores USB disconnect/unbind-time driver bugs (btusb, rtsx_usb_ms, uvcvideo) as Local rather than Physical.\nAC:L - The attacker simply opens a PCM/control/MIDI fd and never closes it; no memory-layout condition or timing beyond the attacker's influence is needed to wedge `snd_card_free()`. The associated free-ordering race is one the attacker widens at will by keeping streams open and issuing concurrent prepare/trigger ioctls.\nPR:L - Only the ability to open the caiaq card's `/dev/snd` device nodes is required, which is granted to the `audio` group and to the logged-in seat user by default logind ACLs. No capability check exists anywhere on the path.\nUI:N - No victim action is required — the attacker's own held fd is what blocks the disconnect callback, and the disconnect/unbind event is an ordinary system event rather than a deliberate user operation.\nS:U - The impact is confined to the kernel of the same host; there is no VM, IOMMU, or sandbox boundary crossed.\nC:H - Pre-fix, `data_urbs_in/out`, their transfer buffers, `data_cb_info` and the input device are freed while userspace fds still reference them, so a race between an in-flight `snd_pcm_prepare()`/`ep1_in_urb` completion and disconnect yields use-after-free reads on reallocated heap objects, which can be leveraged to disclose kernel memory.\nI:H - The same use-after-free window allows `usb_submit_urb()` on a freed `struct urb` and `input_report_*()` writes into a freed input device, giving the USB HCD and the driver write access to attacker-groomed heap memory — a control-flow-relevant corruption primitive.\nA:H - `snd_card_free()` blocks the USB disconnect callback indefinitely while holding the USB device lock, stalling hub event processing and all upper-layer USB ioctls and producing hung-task/soft-lockup conditions that require a reboot to clear; the use-after-free independently causes kernel oopses." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "sound/usb/caiaq/audio.c", "sound/usb/caiaq/audio.h", "sound/usb/caiaq/device.c", "sound/usb/caiaq/input.c", "sound/usb/caiaq/input.h" ], "versions": [ { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "3993edf44d3df7b6e8c753eac6ac8783473fcbab", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "ebad462eec93b0f701dfe4de98990e7355283801", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "4dd821dcbfcecf7af6a08370b0b217cde2818acf", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "cadf1d8e9ddcd74584ec961aeac14ac549b261d8", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "237f3faf0177bdde728fa3106d730d806436aa4d", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "4507a8b9b30344c5ddd8219945f446d47e966a6d", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "dd0de8cb708951cebf727aa045e8242ba651bb52", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "a3f9314752dbb6f6aa1f0f2b4c58243bda800738", "status": "affected", "versionType": "git" }, { "version": "523f1dce37434a9a6623bf46e7893e2b4b10ac3c", "lessThan": "b04dcbb7f7b1908806b7dc22671cdbe78ff2b82c", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "sound/usb/caiaq/audio.c", "sound/usb/caiaq/audio.h", "sound/usb/caiaq/device.c", "sound/usb/caiaq/input.c", "sound/usb/caiaq/input.h" ], "versions": [ { "version": "2.6.22", "status": "affected" }, { "version": "0", "lessThan": "2.6.22", "status": "unaffected", "versionType": "semver" }, { "version": "4.19.325", "lessThanOrEqual": "4.19.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.287", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.231", "lessThanOrEqual": "5.10.*", "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.64", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.11.11", "lessThanOrEqual": "6.11.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.2", "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.22", "versionEndExcluding": "4.19.325" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "5.4.287" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "5.10.231" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "5.15.174" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "6.1.120" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "6.6.64" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "6.11.11" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "6.12.2" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.22", "versionEndExcluding": "6.13" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/3993edf44d3df7b6e8c753eac6ac8783473fcbab" }, { "url": "https://git.kernel.org/stable/c/ebad462eec93b0f701dfe4de98990e7355283801" }, { "url": "https://git.kernel.org/stable/c/4dd821dcbfcecf7af6a08370b0b217cde2818acf" }, { "url": "https://git.kernel.org/stable/c/cadf1d8e9ddcd74584ec961aeac14ac549b261d8" }, { "url": "https://git.kernel.org/stable/c/237f3faf0177bdde728fa3106d730d806436aa4d" }, { "url": "https://git.kernel.org/stable/c/4507a8b9b30344c5ddd8219945f446d47e966a6d" }, { "url": "https://git.kernel.org/stable/c/dd0de8cb708951cebf727aa045e8242ba651bb52" }, { "url": "https://git.kernel.org/stable/c/a3f9314752dbb6f6aa1f0f2b4c58243bda800738" }, { "url": "https://git.kernel.org/stable/c/b04dcbb7f7b1908806b7dc22671cdbe78ff2b82c" } ], "title": "ALSA: caiaq: Use snd_card_free_when_closed() at disconnection", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "metrics": [ { "cvssV3_1": { "scope": "UNCHANGED", "version": "3.1", "baseScore": 5.5, "attackVector": "LOCAL", "baseSeverity": "MEDIUM", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "integrityImpact": "NONE", "userInteraction": "NONE", "attackComplexity": "LOW", "availabilityImpact": "HIGH", "privilegesRequired": "LOW", "confidentialityImpact": "NONE" } }, { "other": { "type": "ssvc", "content": { "id": "CVE-2024-56531", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2025-10-01T20:02:52.447796Z" } } } ], "problemTypes": [ { "descriptions": [ { "lang": "en", "type": "CWE", "cweId": "CWE-667", "description": "CWE-667 Improper Locking" } ] } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2025-10-01T20:07:17.750Z" } }, { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html" }, { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T20:49:10.948Z" } } ] } }