Headline
GHSA-cjcp-qxvg-4rjm: Grav vulnerable to Privilege Escalation in Grav Admin: Missing Username Uniqueness Check Allows Admin Account Takeover
Summary
A privilege escalation vulnerability exists in Grav’s Admin plugin due to the absence of username uniqueness validation when creating users. A user with the create user permission can create a new account using the same username as an existing administrator account, set a new password/email, and then log in as that administrator. This effectively allows privilege escalation from limited user-manager permissions to full administrator access.
Steps to Reproduce
- Make sure you have two accounts: an admin and a user with create user privilege
- In the user account, navigate to /grav-admin/admin/accounts/users and click “Add”
- Enter the name of the admin, complete registration and observe that the existing admin’s email is changed to the value you provided.
- Log out from user account log in as admin with new credentials
Impact
- Full admin takeover by any user with create user permission.
- Ability to change admin credentials, install/remove plugins, read or modify site data, and execute any action available to an admin.
- Severity: High/Critical.
PoC
https://github.com/user-attachments/assets/3ab0a7d6-5055-41be-9e0e-2bd6ca359b37
- GitHub Advisory Database
- GitHub Reviewed
- CVE-2025-66296
Grav vulnerable to Privilege Escalation in Grav Admin: Missing Username Uniqueness Check Allows Admin Account Takeover
High severity GitHub Reviewed Published Dec 1, 2025 in getgrav/grav • Updated Dec 2, 2025
Package
Affected versions
< 1.8.0-beta.27
Patched versions
1.8.0-beta.27
Summary
A privilege escalation vulnerability exists in Grav’s Admin plugin due to the absence of username uniqueness validation when creating users.
A user with the create user permission can create a new account using the same username as an existing administrator account, set a new password/email, and then log in as that administrator. This effectively allows privilege escalation from limited user-manager permissions to full administrator access.
Steps to Reproduce
- Make sure you have two accounts: an admin and a user with create user privilege
- In the user account, navigate to /grav-admin/admin/accounts/users and click “Add”
- Enter the name of the admin, complete registration and observe that the existing admin’s email is changed to the value you provided.
- Log out from user account log in as admin with new credentials
Impact
- Full admin takeover by any user with create user permission.
- Ability to change admin credentials, install/remove plugins, read or modify site data, and execute any action available to an admin.
- Severity: High/Critical.
PoC
https://github.com/user-attachments/assets/3ab0a7d6-5055-41be-9e0e-2bd6ca359b37
References
- GHSA-cjcp-qxvg-4rjm
- https://nvd.nist.gov/vuln/detail/CVE-2025-66296
- getgrav/grav@3462d94
Published to the GitHub Advisory Database
Dec 2, 2025