Description
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.
Affected products
cesanta: mongoose
References5
- github.com/cesanta/mongoose/security/advisories/GHSA-5g6j-m3pv-… ExploitVendor Advisory
- github.com/cesanta/mongoose/security/advisories/GHSA-5g6j-m3pv-… ExploitVendor Advisory
- github.com/cesanta/mongoose/commit/a9df523f76f43a38bd53b4232b9c… Patch
- github.com/cesanta/mongoose/pull/3611 Issue TrackingPatch
- github.com/cesanta/mongoose/releases/tag/7.22 Release Notes
Metrics
- CVSS 3.1
-
5.4
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N - EPSS — exploit probability
- 0% percentile: 28 · as of 10 November 2026
- CWE
- CWE-79
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.