Read the docs
TI-2025-40775 Aliases CVE-2025-66301GHSA-v8x2-fjv7-8hjh

Improper authorization in getgrav grav

Priority HIGH 78CWE-285Published · Updated

Key facts

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

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-285.

Summary

Grav is a file-based Web platform. Prior to 1.8.0-beta.27, due to improper authorization checks when modifying critical fields on a POST request to /admin/pages/{page_name}, an editor with only permissions to change basic content on the form is now able to change the functioning of the form through modifying the content of the data[_json][header][form] which is the YAML frontmatter which includes the process section which dictates what happens after a user submits the form which include some important actions that could lead to further vulnerabilities. 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.01433 73rd percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
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
Yes
Technical impact
Total

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-v8x2-fjv7-8hjh
  • 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-v8x2-fjv7-8hjh

CPE configurations NVD · 27

CPEVersionsRoleVendor
cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*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 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-v8x2-fjv7-8hjh getgrav/grav (Packagist) Fixed in 1.8.0-beta.27 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2025-66301
  2. 2026-10-03 Alias added: GHSA-v8x2-fjv7-8hjh

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