Description
ESPAsyncWebServer is an asynchronous HTTP and WebSocket server library for ESP32, ESP8266, RP2040 and RP2350. Prior to 3.11.1, the multipart/form-data parser in src/WebRequest.cpp stores _boundaryPosition as an 8-bit value while _parseMultipartPostByte processes the boundary. A remote request containing an exactly 256-byte multipart boundary wraps _boundaryPosition from 255 to zero, prevents the boundary parsing loop from terminating, consumes excessive CPU, and triggers a FreeRTOS watchdog reset on affected ESP32 or ESP8266 devices. This issue is fixed in version 3.11.1.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| ESP32Async | ESPAsyncWebServer | < 3.11.1 | — |
References
- https://github.com/ESP32Async/ESPAsyncWebServer/security/advisories/GHSA-4phx-fcj6-46r4
- https://github.com/ESP32Async/ESPAsyncWebServer/pull/445
- https://github.com/ESP32Async/ESPAsyncWebServer/commit/b928de7cbd7debcd6266ece6a6c46f10a86d3a6f
- https://github.com/ESP32Async/ESPAsyncWebServer/releases/tag/v3.11.1