{"id":"CVE-2026-72695","state":"PUBLISHED","title":"Grav before 2.0.16 Path Traversal via MediaUploadTrait deleteFile","description":"Grav before 2.0.16 contains a path traversal vulnerability in MediaUploadTrait::deleteFile() that allows authenticated users with media management permissions to delete arbitrary files by supplying filenames with directory traversal sequences. The method validates only the basename portion of the filename while preserving unvalidated directory paths containing ../ sequences that are passed to unlink(), enabling deletion of files outside the intended media storage directory.","publishedAt":"2026-08-25T01:30:11.868Z","updatedAt":"2026-10-08T15:24:20.325Z","severity":{"score":7.1,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","source":"VulnCheck"},"assigner":"VulnCheck","products":["getgrav grav"],"affected":[{"vendor":"getgrav","product":"grav","packageURL":"pkg:composer/getgrav/grav","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.0.16","versionType":"semver"},{"version":"2.0.16","status":"unaffected","versionType":"semver"}]}],"references":["https://github.com/getgrav/grav/security/advisories/GHSA-jq29-c7v8-rg55","https://www.vulncheck.com/advisories/grav-before-path-traversal-via-mediauploadtrait-deletefile"],"weaknesses":["CWE-22"],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/72xxx/CVE-2026-72695.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72695","state":"PUBLISHED","datePublished":"2026-08-25T01:30:11.868Z","dateUpdated":"2026-10-08T15:24:20.325Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-08-10T13:02:20.828Z"},"containers":{"cna":{"title":"Grav before 2.0.16 Path Traversal via MediaUploadTrait deleteFile","descriptions":[{"lang":"en","value":"Grav before 2.0.16 contains a path traversal vulnerability in MediaUploadTrait::deleteFile() that allows authenticated users with media management permissions to delete arbitrary files by supplying filenames with directory traversal sequences. The method validates only the basename portion of the filename while preserving unvalidated directory paths containing ../ sequences that are passed to unlink(), enabling deletion of files outside the intended media storage directory."}],"affected":[{"vendor":"getgrav","product":"grav","packageURL":"pkg:composer/getgrav/grav","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.0.16","versionType":"semver"},{"version":"2.0.16","status":"unaffected","versionType":"semver"}]}],"references":[{"url":"https://github.com/getgrav/grav/security/advisories/GHSA-jq29-c7v8-rg55","tags":["vendor-advisory"],"name":"GitHub Security Advisory (GHSA-jq29-c7v8-rg55)"},{"url":"https://www.vulncheck.com/advisories/grav-before-path-traversal-via-mediauploadtrait-deletefile","name":"VulnCheck Advisory: Grav before 2.0.16 Path Traversal via MediaUploadTrait deleteFile","tags":["third-party-advisory"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":7.1,"baseSeverity":"HIGH","exploitMaturity":"NOT_DEFINED","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","version":"4.0","vulnAvailabilityImpact":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"NONE","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS"},{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":8.1,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","version":"3.1"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-22","lang":"en","description":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-10-08T15:24:20.325Z"},"datePublic":"2026-08-10T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*","versionEndExcluding":"2.0.16"}]}]}],"credits":[{"lang":"en","value":"ka3n1x","type":"reporter"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/getgrav/grav/security/advisories/GHSA-jq29-c7v8-rg55","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-08-25T17:38:00.813215Z","id":"CVE-2026-72695","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-25T17:38:09.024Z"}}]}}}