Skip to main content

Grav CMS EUVDEUVD-2025-200104

| CVE-2025-66306 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2025-12-01 security-advisories@github.com GHSA-4cwq-j7jv-qmwg
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Log in as low-privilege admin user
  2. Delivery
    Request /admin/accounts/users/{target}
  3. Exploit
    Receive 403 but parse response body
  4. Execution
    Extract admin email from <title> tag
  5. Impact
    Use metadata for phishing/credential stuffing

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Requires an authenticated low-privilege (0-privilege) account on the Grav Admin Panel. The attacker requests another user's account page at /admin/accounts/users/{username} (e.g. /admin/accounts/users/admin); even though the endpoint returns HTTP 403 Forbidden, the target's email address is rendered in the <title> tag of the response body (from the user-accounts.yaml flex blueprint template). Limiting factors: exploitation is gated on holding a valid admin-panel login, the admin interface must be reachable by the attacker, and impact is confined to disclosure of email/metadata - no account takeover, write, or code execution. Affects Grav prior to 1.8.0-beta.27.

Impact

This is a genuine but low-to-moderate priority issue. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N = 6.5 Medium) describes a network-reachable, low-complexity flaw requiring a low-privilege authenticated account, with confidentiality-only impact. The C:H rating is generous: per the GHSA advisory the leaked data is limited to admin email addresses and account metadata surfaced in the HTTP response <title> tag, which is closer to C:L than C:H - a realistic base score is ~4.3 rather than 6.5. Corroborating signals point to low real-world urgency: EPSS is 0.04% (13th percentile), the CVE is NOT in CISA KEV, and there is no evidence of active exploitation. Publicly available exploit code exists (the GHSA advisory documents a full PoC plus a PoC video), so the barrier to reproduction is trivial, but this is distinct from active in-the-wild exploitation. Net: a real, easily-reproduced authorization flaw whose impact is metadata information disclosure, not account takeover or code execution.

Exploit ScenarioDerived

A low-privilege (0-privilege) authenticated user of the Grav Admin Panel requests another user's account endpoint (e.g. GET /admin/accounts/users/admin); although the server returns HTTP 403 Forbidden, the target admin's email address is still embedded in the response's <title> tag. Publicly available exploit code exists (documented PoC plus PoC video in the GHSA advisory), so any attacker with a low-privilege login can harvest admin emails and metadata to fuel targeted phishing, credential stuffing, or social engineering.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Sep 26, 2026

Information disclosure in the Grav CMS Admin Panel affects every release prior to 1.8.0-beta.27, allowing any authenticated low-privilege (0-privilege) account to harvest other users' email addresses and account metadata, including those of the site administrator. An attacker requests another user's account page at /admin/accounts/users/{username} (for example /admin/accounts/users/admin) and, although the endpoint answers with HTTP 403 Forbidden, the target's email address is still interpolated into the <title> tag of the returned page body, so the blocked response leaks data anyway. Publicly available exploit code exists in the form of a published GHSA write-up and PoC video, but there is no confirmed active exploitation (not in CISA KEV) and EPSS is only 0.04% (13th percentile); the practical risk is targeted phishing, credential stuffing and social engineering rather than account takeover, as no read/write escalation, privilege gain or code execution is achievable.

Earlier versions of this analysis (1)
v1 Mar 15, 2026 - 13:34 CVSS 4.3

RemediationAI

Vendor-released patch: upgrade Grav to 1.8.0-beta.27 or later, which removes the email interpolation from the Flex account-list template; the exact upstream change is commit b7e1958a6e807ac14919447b60e5204a2ea77f62 in https://github.com/getgrav/grav/commit/b7e1958a6e807ac14919447b60e5204a2ea77f62, with details in GHSA-4cwq-j7jv-qmwg. Because the fixed build is a beta release, operators on stable 1.7.x who cannot move to the 1.8.0 beta line should apply the single-line template change to system/blueprints/flex/user-accounts.yaml manually (change the list template to "{{ form.value('fullname') ?? form.value('username') }}", dropping the trailing email token) and track it so the patch is not reverted by the next core update; this eliminates the leak but changes how account labels appear in the Admin Panel user list. As a compensating control, restrict the admin interface at /admin (and specifically /admin/accounts/users/*) to trusted networks via reverse-proxy IP allowlisting, VPN, or HTTP basic auth in front of the panel - note this only reduces the exposed attack surface and does not fix the underlying IDOR, and it can lock out legitimate remote administrators. Audit existing accounts and force a password reset for any admin whose email may have been enumerated, since the disclosed metadata primarily enables phishing, credential-stuffing and social-engineering follow-on attacks; EPSS is 0.04% and there is no KEV listing, so remediation can proceed on a normal, risk-based schedule rather than as an emergency.

Affected VersionsENISA

grav < 1.8.0-beta.27

Affected Packages

composer getgrav/grav fix: 1.8.0-beta.27
euvd grav fix: 1.8.0-beta.27

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in composer, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is an Insecure Direct Object Reference / authorization bypass through user-controlled key (CWE-639) in Grav's Admin Panel, which is built on the Grav 'Flex' object system. Account listings are rendered through the Flex blueprint at system/blueprints/flex/user-accounts.yaml, whose list configuration defines a display template of the form "{{ form.value('fullname') ?? form.value('username') }} <{{ form.value('email') }}>", with the underlying account objects assembled by system/src/Grav/Common/Flex/Types/Users/UserCollection.php. When a low-privilege user requests another account's object, Grav's access controls correctly return HTTP 403 Forbidden, but the blueprint template has already been evaluated and the resulting fullname/email string is emitted into the page's <title> element - a classic case of an authorization check being applied to the response status while sensitive object metadata is still rendered into the body. The upstream fix (commit b7e1958a6e807ac14919447b60e5204a2ea77f62) simply removes the email interpolation from the template, dropping it to "{{ form.value('fullname') ?? form.value('username') }}". CPE data (cpe:2.3:a:getgrav:grav:* plus explicit 1.8.0 beta1 through beta17 entries) plus the EUVD range 'grav < 1.8.0-beta.27' and the Composer package composer/getgrav/grav (< 1.8.0-beta.27) confirm that the entire Grav line, including the 1.8.0 beta pre-releases, is affected; the reporting researcher reproduced it on Grav Admin 1.7.48. Note the scoring divergence: NVD's CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N rates confidentiality High, whereas independent assessment rates the same vector with C:L, since only an email address and minor account metadata are exposed and no account takeover, modification or availability impact exists.

Know when Grav gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 4.3 MEDIUM

Network-reachable admin panel with a low-privilege account required (PR:L) and no user interaction; impact is limited to disclosure of email/metadata so C:L not C:H, with no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

5
CVSS changed
Sep 26, 2026 - 00:22 NVD
4.3 (MEDIUM) 6.5 (MEDIUM)
Patch released
Mar 15, 2026 - 13:34 nvd
Patch available
PoC Detected
Dec 03, 2025 - 18:45 vuln.today
Public exploit code
CVE Published
Dec 01, 2025 - 22:15 nvd
MEDIUM 6.5
CVE Published
Dec 01, 2025 - 22:15 nvd
MEDIUM 4.3

DescriptionNVD

Grav is a file-based Web platform. Prior to 1.8.0-beta.27, there is an IDOR (Insecure Direct Object Reference) vulnerability in the Grav CMS Admin Panel which allows low-privilege users to access sensitive information from other accounts. Although direct account takeover is not possible, admin email addresses and other metadata can be exposed, increasing the risk of phishing, credential stuffing, and social engineering. This vulnerability is fixed in 1.8.0-beta.27.

Executive ViewAI

Why It Matters

Organizations using Grav should be aware of moderate risk from CVE-2025-66306, a IDOR vulnerability rated CVSS 4.3. Exploitation could compromise the security of affected deployments. Proof-of-concept code is publicly available. A patch is available and should be applied during regular vulnerability management.

Business Impact: Low
Compensating Controls

Apply vendor patch. If patching is delayed: restrict network access and enable monitoring.

Threat Intelligence Overview

EPSS Score
0.0%
Top 87% exploitable
Prevalence
Low
niche self-hosted flat-file PHP CMS, modest footprint versus WordPress
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Low

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Grav

View all
CVE-2025-50286 HIGH POC
8.1 Aug 06

A Remote Code Execution (RCE) vulnerability in Grav CMS v1.7.48 allows an authenticated admin to upload a malicious plug

CVE-2024-34082 CRITICAL POC
9.9 May 15

Grav is a file-based Web platform. Rated critical severity (CVSS 9.9), this vulnerability is remotely exploitable, low a

CVE-2021-47812 CRITICAL POC
9.8 Jan 16

GravCMS 1.10.7 allows unauthenticated remote attackers to write arbitrary YAML configuration files, leading to full serv

CVE-2026-65008 CRITICAL POC
9.3 Jul 21

Remote code execution in Grav CMS 2.0.4 (fixed in 2.0.7) lets an authenticated user holding the admin.pages or api.pages

CVE-2026-75827 CRITICAL POC
9.3 Aug 18

Remote code execution in Grav CMS before 2.0.15 allows attackers holding page-edit or blueprint-config privileges to wri

CVE-2026-75837 CRITICAL POC
9.3 Aug 18

Vertical privilege escalation in Grav CMS before 2.0.14 lets a delegated administrator holding only the admin.users perm

CVE-2026-75828 CRITICAL POC
9.3 Aug 18

Stored cross-site scripting in Grav CMS before 2.0.15 lets authenticated editors smuggle JavaScript event handlers past

CVE-2025-66844 CRITICAL POC
9.1 Dec 15

Server-side request forgery (SSRF) in Grav CMS versions prior to 1.7.49.5 allows remote authenticated attackers to make

CVE-2026-72819 HIGH POC
8.7 Aug 14

Remote code execution in Grav CMS before 2.0.13 allows authenticated low-privilege users to plant and execute arbitrary

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy