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.
Published: 2026-08-03
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Grav CMS 2.0.10 contains a path traversal vulnerability in the ImageMedium::watermark() function, which forwards its unsanitized image argument to the UniformResourceLocator::findResource() method. The file:// scheme branch of the locator collapses '..' sequences without a containment check, allowing an editor who can add or edit Markdown to include a traversal sequence in an image URL. The result is that arbitrary files outside the media sandbox can be composited into a carrier image, cached, and then served from a public, unauthenticated URL, disclosing those files to anonymous visitors.

Affected Systems

Identified by the Common Platform Enumeration string cpe:2.3:a:getgrav:grav, this flaw affects the Grav CMS product from getgrav, specifically versions prior to 2.0.11. The vendor’s advisories and source‑code commits confirm that versions 2.0.10 and earlier are vulnerable.

Risk and Exploitability

With a CVSS score of 8.7, this vulnerability is considered high severity. The EPSS score is not available, and the issue is not listed in the CISA Known Exploited Vulnerabilities catalog, indicating that it is not currently confirmed exploited in the wild. Nevertheless, the attack vector is straightforward: an unauthenticated user who can edit markdown content can craft a malicious image tag, triggering the path traversal. Successful exploitation results in unauthorized disclosure of arbitrary local files to all visitors, compromising confidentiality and potentially enabling further attacks.

Generated by OpenCVE AI on August 4, 2026 at 10:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Grav CMS to version 2.0.11 or later to include the patched watermark function.
  • If upgrading is not immediately possible, restrict editor access so they cannot modify Markdown files or use image tags with traversal sequences.
  • As a temporary workaround, configure your web server to deny or sanitize file:// URIs in image tags served by Grav, preventing the compositing of arbitrary files.

Generated by OpenCVE AI on August 4, 2026 at 10:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 03 Aug 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 03 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
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.
Title Grav CMS before 2.0.11 Path Traversal via watermark
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-22
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-03T20:04:51.949Z

Reserved: 2026-08-03T10:42:57.737Z

Link: CVE-2026-69089

cve-icon Vulnrichment

Updated: 2026-08-03T20:04:29.234Z

cve-icon NVD

Status : Received

Published: 2026-08-03T14:16:29.420

Modified: 2026-08-03T20:17:29.543

Link: CVE-2026-69089

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T10:30:07Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')