Missing mutex synchronization in AudioBuffer::freeSpace() in schreibfaul1 ESP32-audioI2S 3.4.5 creates a race condition between concurrent tasks. The function calculates available buffer space without protecting shared read/write pointers, returning an incorrectly large value. Trusting this value leads to heap out-of-bounds write, memory corruption, device crash, and arbitrary code execution.
PUBLISHED5.2
Affected products
n/a - AFFECTED
References
github.com
https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/src/Audio.cpp
github.com
https://github.com/programmervuln/cveadvisory-/blob/main/CVE-2026-51261
GitHub Security Advisories
GHSA-fxgw-q43x-mvp4
Missing mutex synchronization in AudioBuffer::freeSpace() in schreibfaul1 ESP32-audioI2S 3.4.5...
https://github.com/advisories/GHSA-fxgw-q43x-mvp4Missing mutex synchronization in AudioBuffer::freeSpace() in schreibfaul1 ESP32-audioI2S 3.4.5 creates a race condition between concurrent tasks. The function calculates available buffer space without protecting shared read/write pointers, returning an incorrectly large value. Trusting this value leads to heap out-of-bounds write, memory corruption, device crash, and arbitrary code execution.
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-51261Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-51261",
"assignerOrgId": "8254265b-2729-46b6-b9e3-3dfca2d5bfca",
"assignerShortName": "mitre",
"dateUpdated": "2026-07-28T14:29:48.091Z",
"dateReserved": "2026-06-07T00:00:00.000Z",
"datePublished": "2026-07-28T00:00:00.000Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "8254265b-2729-46b6-b9e3-3dfca2d5bfca",
"shortName": "mitre",
"dateUpdated": "2026-07-28T14:29:48.091Z"
},
"descriptions": [
{
"lang": "en",
"value": "Missing mutex synchronization in AudioBuffer::freeSpace() in schreibfaul1 ESP32-audioI2S 3.4.5 creates a race condition between concurrent tasks. The function calculates available buffer space without protecting shared read/write pointers, returning an incorrectly large value. Trusting this value leads to heap out-of-bounds write, memory corruption, device crash, and arbitrary code execution."
}
],
"affected": [
{
"vendor": "n/a",
"product": "n/a",
"versions": [
{
"version": "n/a",
"status": "affected"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "n/a",
"type": "text"
}
]
}
],
"references": [
{
"url": "https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/src/Audio.cpp"
},
{
"url": "https://github.com/programmervuln/cveadvisory-/blob/main/CVE-2026-51261"
}
]
}
}
}