Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Reachable over the network with no auth when the device fetches attacker HTML but requires it to load that content (UI:R); heap overflow yields full code-exec so C/I/A all High.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
4DescriptionCVE.org
schreibfaul1 ESP32-audioI2S 3.4.5 has a heap-based buffer overflow vulnerability in the htmlToUTF8() HTML entity decoding function. The function parses attacker-controlled malicious HTML entities and uses memmove and memcpy to rearrange string content without validating buffer remaining size and boundary limits. Crafted oversized HTML entity strings can trigger heap out-of-bounds write, allowing remote code execution, memory information leakage, service crash or privilege escalation.
AnalysisAI
Heap-based buffer overflow in the schreibfaul1 ESP32-audioI2S library (version 3.4.5) exposes ESP32-based audio devices to remote code execution when they parse malicious HTML entities in streamed content. The flawed htmlToUTF8() decoder rearranges string data with memmove/memcpy without checking remaining buffer space, so an attacker who controls the HTML the device fetches (e.g. a web-radio stream or its metadata) can force an out-of-bounds heap write leading to code execution, memory disclosure, or a crash. Publicly available exploit code exists per the CISA SSVC 'poc' status, but the flaw is not listed in CISA KEV and carries a low EPSS score of 0.27% (19th percentile), indicating no evidence of widespread active exploitation yet.
Technical ContextAI
ESP32-audioI2S is an Arduino/ESP-IDF C++ library that streams and decodes audio (Internet radio, MP3/AAC/FLAC, etc.) over I2S on Espressif ESP32 microcontrollers. The vulnerable routine, htmlToUTF8() in src/Audio.cpp, converts HTML entities (such as & or numeric character references) found in fetched HTML/metadata into UTF-8, shifting bytes within a fixed heap buffer using memmove and memcpy. Because it validates neither the remaining buffer capacity nor entity length before writing, oversized or crafted entity strings overrun the allocation. This is a classic CWE-122 heap-based buffer overflow, where corruption occurs in dynamically allocated (heap) memory rather than the stack; on a memory-unsafe MCU with no ASLR/heap hardening, such overwrites can be highly exploitable.
RemediationAI
No vendor-released patch version is identified at time of analysis; the references point to the master-branch source file and a third-party advisory repository rather than a tagged fixed release, so upgrade only after schreibfaul1 publishes a version above 3.4.5 that adds bounds checking to htmlToUTF8() (monitor https://github.com/schreibfaul1/ESP32-audioI2S for releases). Until a fixed release exists, compensating controls include: restricting the device to a hardcoded allowlist of trusted stream/metadata URLs so it never fetches attacker-controlled HTML (trade-off: breaks user-added arbitrary stations); disabling or stripping HTML/ICY metadata parsing if the application does not need it (trade-off: loses now-playing title display); and network-isolating the device on a segmented VLAN with egress filtering so it cannot reach arbitrary internet hosts (trade-off: limits streaming to approved sources). Maintainers of forks should add explicit remaining-buffer-size validation before every memmove/memcpy in the entity decoder. Reference the NVD entry (https://nvd.nist.gov/vuln/detail/CVE-2026-51270) for updates.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same weakness CWE-122 – Heap-based Buffer Overflow
View allSame technique Privilege Escalation
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-49868
GHSA-3x42-qh3f-f9p5