Skip to content

Grav Exposes Password Hashes Leading to privilege escalation

Moderate severity GitHub Reviewed Published Dec 1, 2025 in getgrav/grav • Updated Dec 2, 2025

Package

composer getgrav/grav (Composer)

Affected versions

< 1.8.0-beta.27

Patched versions

1.8.0-beta.27

Description

Exposure of Password Hashes Leading to privilege escalation

Severity Rating: Medium

Vector: Privilege Escalation

CVE: XXX

CWE: 200 - Exposure of Sensitive Information

CVSS Score: 6.2

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L

Analysis

It was observed that if a users is given read access on the user account management section of the admin panel can view the password hashes of all users, including the admin user. This exposure can potentially lead to privilege escalation if an attacker can crack these password hashes.

An attacker with read access can:

  • View and potentially crack the password hashes.
  • Gain administrative access by cracking the admin password hash.
  • Escalate privileges and compromise the entire admin panel.

Proof of Concept

  1. Give read access to user accounts to a random user as shown in the following figures:
    grav0
    grav2

  2. Log in to the admin panel with an account that has read access to user accounts and navigate to the user account management section.

  3. Go to the admin profile http://127.0.0.1/admin/accounts/users/admin; The password is not display. Try inspecting the page source code as shown in the following figures:
    grav2-1

    You can see that it match the hash that is in the admin.yaml file :
    Compare to the hash in database of the admin

  4. Crack the hash as shown in the following figure, the algorithm use here is bcrypt:

grav3

Workarounds

No workaround is currently known

Timeline

2024-07-24 Issue identified

2024-09-27 Vendor contacted

About X41 D-Sec GmbH

X41 is an expert provider for application security services.
Having extensive industry experience and expertise in the area of information
security, a strong core security team of world class security experts enables
X41 to perform premium security services.

Fields of expertise in the area of application security are security centered
code reviews, binary reverse engineering and vulnerability discovery.
Custom research and IT security consulting and support services are core
competencies of X41.

References

@rhukster rhukster published to getgrav/grav Dec 1, 2025
Published by the National Vulnerability Database Dec 1, 2025
Published to the GitHub Advisory Database Dec 2, 2025
Reviewed Dec 2, 2025
Last updated Dec 2, 2025

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
High
Privileges required
High
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
Low

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:L

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(11th percentile)

Weaknesses

Exposure of Sensitive Information to an Unauthorized Actor

The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. Learn more on MITRE.

Insertion of Sensitive Information Into Sent Data

The code transmits data to another actor, but a portion of the data includes sensitive information that should not be accessible to that actor. Learn more on MITRE.

CVE ID

CVE-2025-66304

GHSA ID

GHSA-gq3g-666w-7h85

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.