Read the docs
TI-2025-40769 Aliases CVE-2025-66295GHSA-h756-wh59-hhjv

Path traversal in getgrav grav

Priority HIGH 71CWE-22Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.

Summary

Grav is a file-based Web platform. Prior to 1.8.0-beta.27, when a user with privilege of user creation creates a new user through the Admin UI and supplies a username containing path traversal sequences (for example ..\Nijat or ../Nijat), Grav writes the account YAML file to an unintended path outside user/accounts/. The written YAML can contain account fields such as email, fullname, twofa_secret, and hashed_password. This vulnerability is fixed in 1.8.0-beta.27.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00591 48th percentileScored 2026-11-07
Fix Fixed grav (getgrav): 1.8.0-beta.27getgrav/grav (Packagist): 1.8.0-beta.27

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
getgravgravbefore 1.8.0-beta.271.8.0-beta.27Patch availableCNA
—getgrav/grav (Packagist)before 1.8.0-beta.271.8.0-beta.27Patch availableGHSA-h756-wh59-hhjv
  • grav Vendorgetgrav Affected before 1.8.0-beta.27 Fixed in 1.8.0-beta.27 Patch available CNA
  • getgrav/grav (Packagist) Vendor— Affected before 1.8.0-beta.27 Fixed in 1.8.0-beta.27 Patch available GHSA-h756-wh59-hhjv

CPE configurations NVD · 27

CPEVersionsRoleVendor
cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*1.7.49.5 to before 1.8.0Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta1:*:*:*:*:*:*1.8.0 beta1Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta10:*:*:*:*:*:*1.8.0 beta10Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta11:*:*:*:*:*:*1.8.0 beta11Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta12:*:*:*:*:*:*1.8.0 beta12Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta13:*:*:*:*:*:*1.8.0 beta13Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta14:*:*:*:*:*:*1.8.0 beta14Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta15:*:*:*:*:*:*1.8.0 beta15Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta16:*:*:*:*:*:*1.8.0 beta16Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta17:*:*:*:*:*:*1.8.0 beta17Vulnerablegetgrav
  • cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* Versions 1.7.49.5 to before 1.8.0 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta1:*:*:*:*:*:* Versions 1.8.0 beta1 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta10:*:*:*:*:*:* Versions 1.8.0 beta10 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta11:*:*:*:*:*:* Versions 1.8.0 beta11 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta12:*:*:*:*:*:* Versions 1.8.0 beta12 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta13:*:*:*:*:*:* Versions 1.8.0 beta13 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta14:*:*:*:*:*:* Versions 1.8.0 beta14 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta15:*:*:*:*:*:* Versions 1.8.0 beta15 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta16:*:*:*:*:*:* Versions 1.8.0 beta16 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta17:*:*:*:*:*:* Versions 1.8.0 beta17 Vulnerable ·getgrav
Show 17 more CPE
CPEVersionsRoleVendor
cpe:2.3:a:getgrav:grav:1.8.0:beta18:*:*:*:*:*:*1.8.0 beta18Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta19:*:*:*:*:*:*1.8.0 beta19Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta2:*:*:*:*:*:*1.8.0 beta2Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta20:*:*:*:*:*:*1.8.0 beta20Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta21:*:*:*:*:*:*1.8.0 beta21Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta22:*:*:*:*:*:*1.8.0 beta22Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta23:*:*:*:*:*:*1.8.0 beta23Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta24:*:*:*:*:*:*1.8.0 beta24Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta25:*:*:*:*:*:*1.8.0 beta25Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta26:*:*:*:*:*:*1.8.0 beta26Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta3:*:*:*:*:*:*1.8.0 beta3Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta4:*:*:*:*:*:*1.8.0 beta4Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta5:*:*:*:*:*:*1.8.0 beta5Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta6:*:*:*:*:*:*1.8.0 beta6Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta7:*:*:*:*:*:*1.8.0 beta7Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta8:*:*:*:*:*:*1.8.0 beta8Vulnerablegetgrav
cpe:2.3:a:getgrav:grav:1.8.0:beta9:*:*:*:*:*:*1.8.0 beta9Vulnerablegetgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta18:*:*:*:*:*:* Versions 1.8.0 beta18 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta19:*:*:*:*:*:* Versions 1.8.0 beta19 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta2:*:*:*:*:*:* Versions 1.8.0 beta2 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta20:*:*:*:*:*:* Versions 1.8.0 beta20 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta21:*:*:*:*:*:* Versions 1.8.0 beta21 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta22:*:*:*:*:*:* Versions 1.8.0 beta22 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta23:*:*:*:*:*:* Versions 1.8.0 beta23 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta24:*:*:*:*:*:* Versions 1.8.0 beta24 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta25:*:*:*:*:*:* Versions 1.8.0 beta25 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta26:*:*:*:*:*:* Versions 1.8.0 beta26 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta3:*:*:*:*:*:* Versions 1.8.0 beta3 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta4:*:*:*:*:*:* Versions 1.8.0 beta4 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta5:*:*:*:*:*:* Versions 1.8.0 beta5 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta6:*:*:*:*:*:* Versions 1.8.0 beta6 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta7:*:*:*:*:*:* Versions 1.8.0 beta7 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta8:*:*:*:*:*:* Versions 1.8.0 beta8 Vulnerable ·getgrav
  • cpe:2.3:a:getgrav:grav:1.8.0:beta9:*:*:*:*:*:* Versions 1.8.0 beta9 Vulnerable ·getgrav

Remediation

  • Fix · CNA grav (getgrav) Fixed in 1.8.0-beta.27
  • Fix · GHSA-h756-wh59-hhjv getgrav/grav (Packagist) Fixed in 1.8.0-beta.27 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2025-66295
  2. 2026-10-03 Alias added: GHSA-h756-wh59-hhjv

References

  • TI-2025-28971 Cross Site Scripting vulnerability in grav v.1.7.48 and before allows an attacker to… CVSS 3.1CRITICAL 9.8
  • TI-2021-22428 GravCMS 1.10.7 - Arbitrary YAML Write/Update (Unauthenticated) (2) CVSS 4.0CRITICAL 9.3
  • TI-2025-41064 In grav <1.7.49.5, a SSRF (Server-Side Request Forgery) vector may be triggered via Twig… CVSS 3.1CRITICAL 9.1
  • TI-2026-30888 Grav: Unauthenticated Path Traversal & Arbitrary File Write in FormFlash component. CVSS 4.0HIGH 8.8
  • TI-2025-40773 Security Sandbox Bypass with SSTI (Server Side Template Injection) in the Grav CMS CVSS 3.1HIGH 8.8
  • TI-2025-40768 Grav is vulnerable to RCE via SSTI through Twig Sandbox Bypass CVSS 4.0HIGH 8.7
See all 56 →

Sources