{"id":"GHSA-mmwh-j75q-gxp8","summary":"Duplicate Advisory: Grav: Path Traversal in ImageMedium::watermark() — arbitrary file disclosure via publicly-cached images","details":"### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-w3f4-8pj2-599w. This link is maintained to preserve external references.\n\n### Original Description\nGrav 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.","modified":"2026-09-17T17:30:05.670757962Z","published":"2026-08-03T15:32:48Z","withdrawn":"2026-09-17T17:16:43Z","database_specific":{"github_reviewed":true,"github_reviewed_at":"2026-09-17T17:16:43Z","nvd_published_at":"2026-08-03T14:16:29Z","cwe_ids":["CWE-22"],"severity":"HIGH"},"references":[{"type":"WEB","url":"https://github.com/getgrav/grav/security/advisories/GHSA-w3f4-8pj2-599w"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-69089"},{"type":"WEB","url":"https://github.com/getgrav/grav/commit/b282200a65ce979377963180629babd2335212ba"},{"type":"WEB","url":"https://github.com/getgrav/grav/commit/c569a53304cd7d95ff21bffa6fc590adcf0be83d"},{"type":"WEB","url":"https://github.com/getgrav/grav/commit/db8c1fcd63aaaf6d6b244bc6b4cfa5f7b96bbc7f"},{"type":"WEB","url":"https://www.vulncheck.com/advisories/grav-cms-before-path-traversal-via-watermark"}],"affected":[{"package":{"name":"getgrav/grav","ecosystem":"Packagist","purl":"pkg:composer/getgrav/grav"},"versions":["2.0.10"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-mmwh-j75q-gxp8/GHSA-mmwh-j75q-gxp8.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"},{"type":"CVSS_V4","score":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X"}]}