Skip to main content

Mongoose CVE-2026-73255

| EUVDEUVD-2026-63499 MEDIUM
Path Traversal (CWE-22)
2026-08-20 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with low-privilege credentials
  2. Delivery
    Control or upload SSI-enabled file content
  3. Exploit
    Embed #include traversal directive (e.g., ../../../etc/passwd)
  4. Execution
    Trigger HTTP request processing SSI file
  5. Persist
    mg_ssi() constructs unsanitized path
  6. Impact
    Exfiltrate disclosed file contents from HTTP response

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Three simultaneous non-default conditions must be present: (1) Mongoose must be compiled with MG_ENABLE_SSI defined - this is a compile-time opt-in, not enabled in default builds; (2) the ssi_pattern runtime configuration must be set to match files served by the web server; and (3) the attacker must be able to place or influence the content of at least one SSI-enabled file (e.g., via a file upload feature, user-controlled template, or other write-capable application path). Authentication is required per CVSS PR:L - unauthenticated exploitation is not indicated. Exploitation is limited to reading files accessible by the Mongoose process account; no code execution or write capability is introduced by this flaw. Deployments without MG_ENABLE_SSI are entirely unaffected regardless of version.

Impact

The NVD CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N scores 6.5, reflecting network-reachable exploitation requiring low-privilege credentials with high confidentiality impact but no integrity or availability effect. However, two non-default preconditions substantially reduce realistic risk: the MG_ENABLE_SSI compile-time flag must be enabled (it is not the default build), and ssi_pattern must be configured to expose SSI-processed files. Additionally, the attacker must have some application-level ability to influence SSI file content, implying a degree of write access or application-controlled template injection that goes beyond simple network access. EPSS data was not provided. KEV status is absent - active exploitation is not confirmed. No POC has been identified. The combination of compile-time gating and the content-control prerequisite means this is a real but conditionally exploitable vulnerability; it should be prioritized in SSI-enabled Mongoose deployments but is not broadly exploitable across all Mongoose users.

Exploit ScenarioDerived

An attacker authenticated with low-privilege credentials to a web application backed by SSI-enabled Mongoose uploads or otherwise influences the content of an SSI-served file, embedding a directive such as <!--#include file="../../../etc/shadow" -->. When any HTTP client triggers a request for that file, Mongoose's mg_ssi() constructs the traversal path without sanitization and returns the contents of the target file in the HTTP response, disclosing credentials or configuration data readable by the Mongoose process. No public exploit code has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 20, 2026

Path traversal in Cesanta Mongoose's SSI processing allows an authenticated network attacker to read arbitrary files accessible to the Mongoose process by embedding directory traversal sequences in #include file or #include virtual SSI directives. The mg_ssi() function in src/ssi.c constructs filesystem paths from directive arguments without invoking the existing mg_path_is_sane() validation, bypassing the only guard against traversal. Exploitation is constrained to deployments compiled with MG_ENABLE_SSI and a configured ssi_pattern; no public exploit has been identified at time of analysis.

RemediationAI

Upgrade to Mongoose 7.22 or later, available at https://github.com/cesanta/mongoose/releases/tag/7.22. This release incorporates commit a9df523f76f43a38bd53b4232b9cfd4c16869e71 (PR #3611), which adds mg_path_is_sane() validation within mg_ssi() before filesystem path construction. If recompilation is feasible but an immediate version upgrade is not, removing the MG_ENABLE_SSI compile-time flag eliminates the vulnerability entirely by disabling SSI support; note this will break any application functionality that relies on server-side includes. As a runtime workaround, setting ssi_pattern to an empty or non-matching value prevents SSI files from being processed, effectively neutralizing the traversal path without recompilation, though the effect depends on how ssi_pattern is applied in the specific deployment.

Affected VersionsENISA

Mongoose < 7.22

Affected Packages

euvd mongoose fix: 7.22

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

Mongoose (CPE: cpe:2.3:a:cesanta:mongoose:*:*:*:*:*:*:*:*) is a compact, single-file C embedded web server and networking library by Cesanta, widely used in IoT devices, embedded systems, and resource-constrained applications. Its Server-Side Includes (SSI) feature is activated at compile time via the MG_ENABLE_SSI flag and controlled at runtime by the ssi_pattern configuration. The vulnerable code path is mg_ssi() in src/ssi.c, which processes #include file and #include virtual directives by directly concatenating the directive argument into a filesystem path. The codebase already contains a mg_path_is_sane() function designed to reject traversal sequences such as ../, but mg_ssi() omits this call, constituting a CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) flaw. The fix is confirmed in commit a9df523f76f43a38bd53b4232b9cfd4c16869e71 via PR #3611, adding the missing sanitization call before path construction.

Know when Mongoose 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

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.3 MEDIUM

AC:H reflects the non-default MG_ENABLE_SSI compile-time requirement and the prerequisite that the attacker controls SSI file content; PR:L covers authenticated access; no integrity or availability impact.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Aug 20, 2026 - 18:03 EUVD

DescriptionCVE.org

Mongoose is an embedded web server and network library. Prior to 7.22, an attacker who can control an SSI-enabled file can place directory traversal sequences in an #include file or #include virtual directive. The mg_ssi() function in src/ssi.c concatenates the directive argument into a filesystem path without calling mg_path_is_sane(), allowing an MG_ENABLE_SSI deployment with ssi_pattern configured to disclose files readable by the Mongoose process. This issue is fixed in version 7.22.

Threat Intelligence Overview

EPSS Score
0.6%
Top 54% exploitable
Prevalence
Low
niche embedded C library, primarily IoT and embedded system deployments
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

33
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2025-23061 CRITICAL POC
9.0 Jan 15

Mongoose ODM for Node.js before version 8.9.5 contains a search injection vulnerability when using $where filters with p

CVE-2017-2894 CRITICAL POC
9.8 Nov 07

An exploitable stack buffer overflow vulnerability exists in the MQTT packet parsing functionality of Cesanta Mongoose 6

CVE-2017-2891 CRITICAL POC
9.8 Nov 07

An exploitable use-after-free vulnerability exists in the HTTP server implementation of Cesanta Mongoose 6.8. Rated crit

CVE-2017-2922 CRITICAL POC
9.8 Nov 07

An exploitable memory corruption vulnerability exists in the Websocket protocol implementation of Cesanta Mongoose 6.8.

CVE-2017-2921 CRITICAL POC
9.8 Nov 07

An exploitable memory corruption vulnerability exists in the Websocket protocol implementation of Cesanta Mongoose 6.8.

CVE-2023-3696 CRITICAL POC
9.8 Jul 17

Prototype Pollution in GitHub repository automattic/mongoose prior to 7.3.4. Rated critical severity (CVSS 9.8), this vu

CVE-2022-2564 CRITICAL POC
9.8 Jul 28

Prototype Pollution in GitHub repository automattic/mongoose prior to 6.4.6. Rated critical severity (CVSS 9.8), this vu

CVE-2019-19307 CRITICAL POC
9.8 Nov 26

An integer overflow in parse_mqtt in mongoose.c in Cesanta Mongoose 6.16 allows an attacker to achieve remote DoS (infin

CVE-2024-53900 CRITICAL POC
9.1 Dec 02

Mongoose before 8.8.3 can improperly use $where in match, leading to search injection. Rated critical severity (CVSS 9.1

CVE-2021-26530 CRITICAL POC
9.1 Feb 08

The mg_tls_init function in Cesanta Mongoose HTTPS server 7.0 (compiled with OpenSSL support) is vulnerable to remote OO

CVE-2021-26529 CRITICAL POC
9.1 Feb 08

The mg_tls_init function in Cesanta Mongoose HTTPS server 7.0 and 6.7-6.18 (compiled with mbedTLS support) is vulnerable

CVE-2021-26528 CRITICAL POC
9.1 Feb 08

The mg_http_serve_file function in Cesanta Mongoose HTTP server 7.0 is vulnerable to remote OOB write attack via connect

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy