GHSA-h756-wh59-hhjv · Severity: high · Ecosystem: composer — Grav vulnerable to Path traversal / arbitrary YAML write via user creation leading to Account Takeover / System Corruption
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.
Conclusion & alert: CVE-2025-66295 is rated Moderate Risk (40.7/100): CVSS High severity, with low exploitation likelihood (EPSS 0.05%). Mandatory action: Review affected assets and schedule remediation.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2025-12-05 | 0.05% | 0.05% | +0.01% |
| 2 | 2025-12-02 | — | 0.05% | — |
Full EPSS history (2 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 8.8 | 3.1 | HIGH |
|
2.8 | 5.9 | [email protected] |
GHSA-h756-wh59-hhjv · Severity: high · Ecosystem: composer — Grav vulnerable to Path traversal / arbitrary YAML write via user creation leading to Account Takeover / System Corruption
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| getgrav | grav | >= 1.7.49.5, < 1.8.0 | cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta1:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta10:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta11:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta12:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta13:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta14:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta15:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta16:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta17:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta18:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta19:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta2:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta20:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta21:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta22:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta23:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta24:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta25:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta26:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta3:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta4:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta5:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta6:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta7:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta8:*:*:*:*:*:* |
| getgrav | grav | 1.8.0 | cpe:2.3:a:getgrav:grav:1.8.0:beta9:*:*:*:*:*:* |