High Β· published December 2, 2025
β‘ Just a crafty username is all it takes to expose sensitive account information! Before version 1.8.0-beta.27, Grav allows an attacker to use path traversal sequences to manipulate where account data is stored. π₯ Think of it like a restaurant where a customer can slip a note under the door to the kitchen, asking for their order to be sent to their friend's house instead of their table. If the restaurant doesnβt check that note closely, they might send private information to the wrong address! An attacker could create a new user with a sneaky username, allowing them to write sensitive account details like emails and hashed passwords to an unintended location. This could lead to unauthorized access and a complete breach of user privacy. Yikes!
Think of it like a restaurant where a customer can slip a note under the door to the kitchen, asking for their order to be sent to their friend's house instead of their table. If the restaurant doesnβt check that note closely, they might send private information to the wrong address! This vulnerability allows an authenticated user with user creation privileges to write user account data outside the intended directory by exploiting path traversal sequences in the username during account creation.
An attacker could create a new user with a sneaky username, allowing them to write sensitive account details like emails and hashed passwords to an unintended location. This could lead to unauthorized access and a complete breach of user privacy. Yikes! Upgrade to Grav version 1.8.0-beta.27 immediately to close this security hole. It's also wise to audit user input validation to prevent future path traversal exploits. Donβt forget to test this in your staging environment! You've got this! By taking these steps, youβll shore up your defenses and keep your user data safe! π‘οΈ
| Product | Versions | Fixed in |
|---|---|---|
| getgrav/grav | β₯ 1.7.49.5, < 1.8.0 | 1.8.0 |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |
| getgrav/grav | all versions | β |