CVE-2026-80737 (GCVE-0-2026-80737)
Vulnerability from cvelistv5
Published
2026-09-03 08:21
Modified
2026-09-04 04:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
serial: amba-pl011: synchronize DMA teardown
dmaengine_terminate_all() does not wait for a running callback, so the TX
callback can still touch the TX buffer after it is freed. The RX poll
timer reads the RX buffers without the port lock.
Switch to dmaengine_terminate_sync() and delete the RX timer before
freeing the buffers.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd Version: ead76f329f777c7301e0a5456a0a1c7a081570bd |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/amba-pl011.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a38fae9d212e2d3ed5e9ec0ef773f8c0a27fb76e",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "44bd0ecc3444882d08ecfbc2b2418d2f463d3186",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "f70c9d4fba46463a5b1c7b3ee9ee3b40c90dac03",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "c8c8e895f65fbf71ea6224e27cf8dab91b776e0d",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "9f6989e477f03a4721d34bb4b09b17accd40283e",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "5974cb66681eac367107b05924744d7e3b49d41c",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "fdfb46c387241b4eddd36d746793764413285913",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
},
{
"lessThan": "440915499231e9db1c361aa45bb702e8fd3b4a32",
"status": "affected",
"version": "ead76f329f777c7301e0a5456a0a1c7a081570bd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/amba-pl011.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.39"
},
{
"lessThan": "2.6.39",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.267",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.218",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.185",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.154",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.106",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.45",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.267",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.218",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.39",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: amba-pl011: synchronize DMA teardown\n\ndmaengine_terminate_all() does not wait for a running callback, so the TX\ncallback can still touch the TX buffer after it is freed. The RX poll\ntimer reads the RX buffers without the port lock.\n\nSwitch to dmaengine_terminate_sync() and delete the RX timer before\nfreeing the buffers."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Local tty device access via open/write/close on /dev/ttyAMA* or similar; PL011 DMA teardown runs in pl011_shutdown from uart_close/hangup/suspend, not via network protocols.\nAC:L - Attacker with tty fd controls DMA load (large writes for TX DMA, active RX) and teardown timing via close/hangup; they can repeatedly race shutdown against in-flight DMA callbacks/timers without uncontrollable conditions.\nPR:L - Requires open/write/close on the UART tty node, typically granted via dialout group on embedded ARM systems with PL011 DMA; not via user namespaces alone, but no root required on auxiliary serial ports.\nUI:N - Attacker performs all steps themselves (open port, queue DMA traffic, close); no separate victim action needed.\nS:U - Kernel heap/coherent-buffer UAF during UART driver teardown affects only local kernel resources; no VM escape, IOMMU bypass, or cross-security-authority boundary.\nC:H - TX DMA callback or RX poll timer can access freed TX kmalloc buffer or RX dma coherent pages, yielding UAF read primitives over kernel memory and potential information disclosure.\nI:H - Post-free access via pl011_dma_tx_refill/dma_map or pl011_dma_rx_poll writing into tty flip buffers enables heap corruption and potential kernel code execution or privilege escalation.\nA:H - UAF during DMA teardown can provoke kernel oops/panic from concurrent access to freed buffers, and repeated triggering can deny UART service or crash the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T04:58:22.813Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a38fae9d212e2d3ed5e9ec0ef773f8c0a27fb76e"
},
{
"url": "https://git.kernel.org/stable/c/44bd0ecc3444882d08ecfbc2b2418d2f463d3186"
},
{
"url": "https://git.kernel.org/stable/c/f70c9d4fba46463a5b1c7b3ee9ee3b40c90dac03"
},
{
"url": "https://git.kernel.org/stable/c/c8c8e895f65fbf71ea6224e27cf8dab91b776e0d"
},
{
"url": "https://git.kernel.org/stable/c/9f6989e477f03a4721d34bb4b09b17accd40283e"
},
{
"url": "https://git.kernel.org/stable/c/5974cb66681eac367107b05924744d7e3b49d41c"
},
{
"url": "https://git.kernel.org/stable/c/fdfb46c387241b4eddd36d746793764413285913"
},
{
"url": "https://git.kernel.org/stable/c/440915499231e9db1c361aa45bb702e8fd3b4a32"
}
],
"title": "serial: amba-pl011: synchronize DMA teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80737",
"datePublished": "2026-09-03T08:21:52.539Z",
"dateReserved": "2026-08-26T14:34:25.789Z",
"dateUpdated": "2026-09-04T04:58:22.813Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…