CVE-2026-69089
Received Received - Intake

Path Traversal in Grav CMS via Image Watermarking

Vulnerability report for CVE-2026-69089, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-03

Last updated on: 2026-08-03

Assigner: VulnCheck

Description

Grav CMS 2.0.10 contains a path traversal vulnerability in ImageMedium::watermark(), which passes its unsanitized $image argument to RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator::findResource(). Because the file:// scheme branch only lexically collapses '..' segments without a realpath/containment check, an editor authoring Markdown image syntax with traversal sequences can cause arbitrary image files outside Grav's media sandbox to be composited into a carrier image, which is then cached and served from a public, unauthenticated URL β€” disclosing those files to anonymous visitors.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-03
Last Modified
2026-08-03
Generated
2026-08-03
AI Q&A
2026-08-03
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
grav cms 2.0.10

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-22 The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

Grav CMS 2.0.10 has a path traversal flaw in the ImageMedium::watermark() function. It allows an attacker with editor access to craft Markdown image syntax with traversal sequences (like ../) to access arbitrary files outside Grav's media sandbox. These files are then embedded into a carrier image, cached, and served publicly without authentication.

Detection Guidance

This vulnerability involves path traversal in Grav CMS 2.0.10 via ImageMedium::watermark(). To detect it, inspect Grav CMS installations for version 2.0.10 and check for unauthorized file access patterns in logs. Look for Markdown image syntax with traversal sequences like ../ in image paths. No specific commands are provided in the context.

Impact Analysis

If exploited, this vulnerability could expose sensitive files on your server to unauthorized users. Attackers may access configuration files, user data, or other confidential information stored outside the intended media directory. This could lead to data breaches or further compromise of the system.

Compliance Impact

This vulnerability could lead to unauthorized access to personal or sensitive data, violating GDPR's data protection principles or HIPAA's requirements for safeguarding protected health information. Organizations may face legal penalties, reputational damage, and loss of compliance certifications if exploited.

Mitigation Strategies

Upgrade Grav CMS to a patched version where ImageMedium::watermark() sanitizes the $image argument before passing it to UniformResourceLocator::findResource().

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-69089. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart