Local file disclosure via unrestricted mj-include paths
Published Dec 14, 2025 · Updated Dec 14, 2025
Absolute path traversal in MJML through 4.18.0 allows local users to test file existence and read files through CSS mj-include directives. The XML parser resolves the path attribute against its working directory and passes the resulting absolute path to fs.readFileSync without confining it to that directory. Exploitation requires the compiler to process attacker-controlled MJML; CSS includes disclose file contents, while other includes provide an existence oracle.
Summary
What happened
Absolute path traversal in MJML through 4.18.0 allows local users to test file existence and read files through CSS mj-include directives. The XML parser resolves the path attribute against its working directory and passes the resulting absolute path to fs.readFileSync without confining it to that directory. Exploitation requires the compiler to process attacker-controlled MJML; CSS includes disclose file contents, while other includes provide an existence oracle.
The record
- CVE
- CVE-2025-67898
- Published
- Dec 14, 2025
- Updated
- Dec 14, 2025
- Vendor
- MJML
- Product
- MJML
- Classifications
- CWE-36, T1005, T1083
- Attack vector
- local
- Privileges
- unauthenticated
Timeline
How it unfolded
- Dec 14, 2025CVE publishedPublication date reported by the CVE source.
- Dec 14, 2025Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=0 <=4.18.0
What conditions does exploitation require?
What is affected?
Published CVSS scores
CVSS describes severity. EPSS estimates exploitation probability.
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
- mj-include CSS absolute-path read proof of conceptproof of concept · demonstrated
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo