Description
Mongoose is an embedded web server and network library. Prior to 7.22, a remote attacker can send a crafted percent-encoded request path to a deployment using MG_ENABLE_DIRLIST and persuade a user to visit it. The mg_http_serve_dir() and listdir() path in src/http.c places the decoded request URI into the title and h1 elements without HTML entity encoding. The resulting reflected cross-site scripting executes in the Mongoose origin and can expose session data or perform actions as the victim. This issue is fixed in version 7.22.
Affected products
cesanta: mongoose
References5
- github.com/cesanta/mongoose/security/advisories/GHSA-9cwm-487w-… ExploitVendor Advisory
- github.com/cesanta/mongoose/security/advisories/GHSA-9cwm-487w-… 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: 35 · 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.