Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach device upload/OTA endpoint over network
-
DeliverySend multipart POST closing file part with boundary
-
ExploitAppend non-terminator byte triggering rewind branch
-
ExecutionWrite through freed NULL _itemBuffer
-
ImpactStoreProhibited panic and device reboot (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target firmware to have registered a route with a non-trivial body/upload handler - specifically a file-upload or web-OTA endpoint - so the multipart parser path in src/WebRequest.cpp is reachable; devices without such an endpoint are not exploitable. Given that endpoint, no authentication, privileges, or user interaction are needed (PR:N/UI:N): the attacker sends a multipart/form-data request where the closing '--<boundary>' appears after a \r\n in the file body and is followed by a byte that is neither the final '--' nor a clean '\r\n' (e.g. a tab), forcing the DASH3_OR_RETURN2/EXPECT_FEED2 rewind branch to write through the freed NULL _itemBuffer. Limiting factors: impact is confirmed as a StoreProhibited panic/reboot on ESP32 (availability only, no code execution or data access), and the only complete fix per the vendor is upgrading to 3.11.2. |
| Impact | All exploitability signals point the same way: the CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N is a remote, low-complexity, unauthenticated path, and PR:N confirms no authentication is required. The GHSA advisory calls the trigger 'deterministic' and supplies a single curl command, so attack complexity is genuinely low. However, impact is strictly availability (C:N/I:N/A:H) - a null-pointer write (CWE-476, with CWE-672 use-after-free as the design root cause) causing a StoreProhibited panic and reboot on ESP32; there is no data disclosure or code execution, so the 7.5 'High' is driven entirely by device crash/DoS. No EPSS score was provided and this CVE is NOT in CISA KEV, so there is no evidence of active exploitation; the vuln.today decision label is 'this_week', not act_now or emergency. The one real constraint is deployment-dependent: exploitation requires the target firmware to register a non-trivial body/upload handler (file-upload or web-OTA endpoint), which is an application design choice, not a default. Net: a credible, easy-to-trigger remote DoS worth patching promptly on affected IoT fleets that expose upload/OTA routes, but it is availability-only and not an emergency given no KEV and no EPSS signal. |
| Exploit ScenarioDerived | An attacker with network reachability to an ESP32 device running a vulnerable firmware upload or web-OTA endpoint sends a multipart/form-data POST whose file part is closed with the boundary followed by a non-terminator byte (e.g. '...hello\r\n--X\tjunk'). The parser has already freed and nulled the item buffer while leaving _itemIsFile true, so the rewind logic writes through the null pointer and panics the device into a reboot. A public PoC reference exists (a deterministic curl command in the GHSA advisory and a regression test in the fix commit); it is not labeled as confirmed working exploit code in the input. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Remote denial of service in ESPAsyncWebServer (all versions prior to 3.11.2, i.e. up to and including 3.11.1) lets an unauthenticated remote attacker reboot an affected ESP32 device by sending a single malformed multipart/form-data request to a route that has a non-trivial body handler, such as a file-upload or web-OTA endpoint. The multipart parser frees and NULLs the file-item buffer the instant it matches the closing '--<boundary>' but leaves the file flag set, so when the next byte is neither the final '--' nor a clean CRLF the rewind logic writes through the NULL pointer, triggering a StoreProhibited exception, panic and device reboot. The flaw is fixed in 3.11.2; there is no CISA KEV entry and no confirmed working exploit code, although the vendor advisory publishes a public curl reproducer that is not verified as weaponized exploit code.
RemediationAI
Vendor-released patch: upgrade ESPAsyncWebServer to version 3.11.2 (or later), which clears _itemIsFile when the item buffer is freed and adds a defensive NULL-buffer guard before itemWriteByte writes. The vendor states that updating is the only complete fix, so treat the upgrade as mandatory for any device exposing an upload or web-OTA endpoint; patch references are https://github.com/ESP32Async/ESPAsyncWebServer/tree/v3.11.2 and commit https://github.com/ESP32Async/ESPAsyncWebServer/commit/4efbd35e597d91f01749f2d4a14bb78fba8ea02e, with details in GHSA-8m8p-vhxc-jmjw. Because the crash path requires a route with a non-trivial body handler, devices without such an endpoint are not exploitable - if an upgrade cannot be deployed immediately, removing or disabling file-upload and web-OTA routes, or restricting them to trusted network segments, removes reachability of the vulnerable parser, at the cost of losing those features (including over-the-air update capability) until the patched library is flashed.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ESPAsyncWebServer is an asynchronous HTTP/WebSocket server library for ESP32, ESP8266, RP2040 and RP2350 microcontrollers; the defect lives in the multipart/form-data state machine in src/WebRequest.cpp. When the parser is in the BOUNDARY_OR_DATA state and matches the closing boundary of a file part, it calls free(_itemBuffer) and sets _itemBuffer = NULL (around lines 918-919) before confirming the following terminator byte, and it does not clear the _itemIsFile flag. If the byte after the boundary match is neither the final closing '--' nor a clean '\r\n' - for example a tab - control falls into the rewind branches of DASH3_OR_RETURN2 (~lines 941-947) or EXPECT_FEED2 (~lines 948-960), which re-inject provisionally consumed bytes via itemWriteByte(). Because _itemIsFile is still true, that path reaches _itemBuffer[_itemBufferIndex++] = data (line ~728) with _itemBuffer == NULL, a store to address zero. The issue is classified CWE-476 (NULL Pointer Dereference), with the vendor also attributing the root design cause to CWE-672 (operation on a resource after release). On ESP32 the fault surfaces as a StoreProhibited exception, panic and reboot - availability impact only, with no memory-corruption outcome, code execution or data disclosure demonstrated. The bug was reportedly found by fuzzing with AI-assisted analysis; the trigger is deterministic and requires the closing '--<boundary>' to appear after a CRLF in the file body followed by a non-terminator byte. The CPE cpe:2.3:a:esp32async:espasyncwebserver:*:*:*:*:*:*:*:* reflects that the vendor advisory covers all earlier releases; the fix commit 4efbd35e597d91f01749f2d4a14bb78fba8ea02e both clears _itemIsFile when the buffer is freed and adds a defensive NULL check in _parsePlainPostChar. Crash behaviour is confirmed on ESP32; the advisory does not describe the resulting fault on ESP8266, RP2040 or RP2350 builds, so impact on those targets is unverified.
Know when Espasyncwebserver gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Deterministic remote unauthenticated trigger over HTTP (AV:N/AC:L/PR:N/UI:N); impact is only a crash/reboot, so C:N/I:N/A:H and scope unchanged.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ESPAsyncWebServer is an asynchronous HTTP and WebSocket server library for ESP32, ESP8266, RP2040 and RP2350. Prior to version 3.11.2, the multipart parser in src/WebRequest.cpp frees _itemBuffer and sets it to NULL when BOUNDARY_OR_DATA matches the closing boundary of a file part, before confirming the following terminator, while leaving _itemIsFile true. If the next byte is neither the final closing dashes nor a clean CRLF, the DASH3_OR_RETURN2 or EXPECT_FEED2 rewind branch re-injects provisionally consumed bytes through itemWriteByte. Because _itemIsFile remains true, _itemBuffer[_itemBufferIndex++] writes through a null pointer. On ESP32 this causes a StoreProhibited exception, panic and device reboot, producing remote denial of service. A route with a non-trivial body/upload handler, such as a file-upload or web-OTA endpoint, must be present. This issue is fixed in version 3.11.2.
Technical POC Analysis
CWE-476 (NULL Pointer Dereference), with the advisory also assigning CWE-672 (use of a resource after release) as the underlying design cause.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity vulnerability in the ESPAsyncWebServer library (versions up to 3.11.1) allows unauthenticated attackers to remotely reboot ESP32 devices with a single malformed request, disrupting operations for any product using this library. This poses a significant availability risk, especially for critical IoT, industrial, or consumer devices, and could lead to service outages or safety incidents. Leadership should prioritize remediation to prevent potential business disruption and reputational damage.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-114469
NVD
CVE.org
EPSS
GitHub
Exploit-DB