Mongoose: Stored XSS via unescaped filenames in directory listing
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-79.
Summary
Mongoose is an embedded web server and network library. Prior to 7.22, an attacker who can create a file with an HTML payload in its name can trigger stored cross-site scripting when a user browses a directory served with MG_ENABLE_DIRLIST. The printdirentry() path called by listdir() in src/http.c URL-encodes the href but inserts the raw filesystem filename into the HTML link text. The browser executes the injected markup in the Mongoose origin, which can expose session data or permit actions as the victim. This issue is fixed in version 7.22.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA mongoose (cesanta) Fixed in 7.22
Timeline
- 2026-10-02 Threatist record created from CVE-2026-73254
References
More Cesanta Mongoose vulnerabilities
- TI-2026-51393 Mongoose: Content-Length + Transfer-Encoding coexistence enables request smuggling CVSS 3.1CRITICAL 9.1
- TI-2026-51389 Mongoose: TLS Hostname Verification Bypass via Overly Permissive Wildcard Matching CVSS 4.0CRITICAL 9.1
- TI-2023-02723 Cesanta Mongoose MQTT Message Parsing Heap Overflow CVSS 3.1HIGH 8.8
- TI-2020-15865 Buffer overflow in mg_resolve_from_hosts_file in Mongoose 6.18, when reading from a crafted hosts file. CVSS 3.1HIGH 8.8
- TI-2023-17032 The HTTP server in Mongoose before 7.10 accepts requests containing negative… CVSS 3.1HIGH 7.5
- TI-2026-06113 Cesanta Mongoose TCP Option net_builtin.c handle_opt infinite loop CVSS 4.0MEDIUM 6.9
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences