{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-43459", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2026-05-01T14:12:56.010Z", "datePublished": "2026-05-08T14:22:22.651Z", "dateUpdated": "2026-10-16T15:20:42.281Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:28:04.321Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: soc-core: flush delayed work before removing DAIs and widgets\n\nWhen a sound card is unbound while a PCM stream is open, a\nuse-after-free can occur in snd_soc_dapm_stream_event(), called from\nthe close_delayed_work workqueue handler.\n\nDuring unbind, snd_soc_unbind_card() flushes delayed work and then\ncalls soc_cleanup_card_resources(). Inside cleanup,\nsnd_card_disconnect_sync() releases all PCM file descriptors, and\nthe resulting PCM close path can call snd_soc_dapm_stream_stop()\nwhich schedules new delayed work with a pmdown_time timer delay.\nSince this happens after the flush in snd_soc_unbind_card(), the\nnew work is not caught. soc_remove_link_components() then frees\nDAPM widgets before this work fires, leading to the use-after-free.\n\nThe existing flush in soc_free_pcm_runtime() also cannot help as it\nruns after soc_remove_link_components() has already freed the widgets.\n\nAdd a flush in soc_cleanup_card_resources() after\nsnd_card_disconnect_sync() (after which no new PCM closes can\nschedule further delayed work) and before soc_remove_link_dais()\nand soc_remove_link_components() (which tear down the structures the\ndelayed work accesses)." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.3, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerable ASoC/ALSA teardown path is reached locally through open PCM device files and sound-card driver unbind/removal, not by network or adjacent inputs.\nAC:L - Once a PCM playback stream is open and card unbind occurs, the delayed work is queued deterministically after disconnect; no attacker-uncontrolled race win is required.\nPR:L - A low-privileged local user with access to ALSA PCM devices can control the open stream and close side of the sequence. The unbind side is normally root-mediated, but the lower-privileged scenario is defensible when paired with required user/admin interaction.\nUI:R - A non-admin attacker cannot normally write the root-owned sysfs driver unbind attribute or unload the driver, so exploitation in the low-privileged scenario requires a privileged user or system action to unbind/remove the sound card.\nS:U - The impact remains within the local kernel security authority; this is not a VM escape, IOMMU bypass, or cross-scope boundary violation.\nC:H - The bug is a kernel use-after-free in delayed work over freed DAPM/DAI-related objects. Following kernel scoring guidance, UAF memory corruption can enable high-impact information disclosure.\nI:H - The delayed work writes through freed widget/list objects and can corrupt kernel heap state. Following kernel scoring guidance, UAF memory corruption is treated as potentially enabling arbitrary write or control-flow compromise.\nA:H - Even without full exploitation, the use-after-free can dereference or mutate freed kernel objects from a workqueue and plausibly cause an oops, panic, or hang." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "sound/soc/soc-core.c" ], "versions": [ { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "bf80a89da97285d9b877e0c6995e870d46b8025c", "status": "affected", "versionType": "git" }, { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "3887e514978d28216246360b46a9cb534969eb5a", "status": "affected", "versionType": "git" }, { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "231568afbc0cd25b8fb2a94ebf9738eabe1cf007", "status": "affected", "versionType": "git" }, { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "317a9298c54bb00319da73e5a7179f00e67fcbdf", "status": "affected", "versionType": "git" }, { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "eab71e11ce2447c1e01809cbc11eab4234cf8dc8", "status": "affected", "versionType": "git" }, { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "7d33e6140945482a07f8089ee86e13e02553ffdb", "status": "affected", "versionType": "git" }, { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "c054f0607c8bb1b1aa529bc109e4149298a1cccd", "status": "affected", "versionType": "git" }, { "version": "e894efef9ac7c10b7727798dcc711cccf07569f9", "lessThan": "95bc5c225513fc3c4ce169563fb5e3929fbb938b", "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/soc/soc-core.c" ], "versions": [ { "version": "4.20", "status": "affected" }, { "version": "0", "lessThan": "4.20", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.253", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.203", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.167", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.130", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.78", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.19", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.19.9", "lessThanOrEqual": "6.19.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.0", "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": "4.20", "versionEndExcluding": "5.10.253" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "5.15.203" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.1.167" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.6.130" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.12.78" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.18.19" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.19.9" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "7.0" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/bf80a89da97285d9b877e0c6995e870d46b8025c" }, { "url": "https://git.kernel.org/stable/c/3887e514978d28216246360b46a9cb534969eb5a" }, { "url": "https://git.kernel.org/stable/c/231568afbc0cd25b8fb2a94ebf9738eabe1cf007" }, { "url": "https://git.kernel.org/stable/c/317a9298c54bb00319da73e5a7179f00e67fcbdf" }, { "url": "https://git.kernel.org/stable/c/eab71e11ce2447c1e01809cbc11eab4234cf8dc8" }, { "url": "https://git.kernel.org/stable/c/7d33e6140945482a07f8089ee86e13e02553ffdb" }, { "url": "https://git.kernel.org/stable/c/c054f0607c8bb1b1aa529bc109e4149298a1cccd" }, { "url": "https://git.kernel.org/stable/c/95bc5c225513fc3c4ce169563fb5e3929fbb938b" } ], "title": "ASoC: soc-core: flush delayed work before removing DAIs and widgets", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2026-43459", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "total" } ], "version": "2.0.3", "timestamp": "2026-10-16T15:17:35.638816Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2026-10-16T15:20:42.281Z" } } ] } }