Critical · published December 2, 2025
⚡ Editors could unexpectedly wield power! Before version 1.8.0-beta.27 of Grav, a sneaky lack of authorization checks let editors change critical YAML settings on forms—talk about a surprise shift in authority! 😱 Think of it like allowing a guest at a restaurant to modify the entire menu instead of just their order—what could go wrong? This vulnerability lets someone with limited access change the entire dining experience, potentially serving up some unwanted surprises! An editor could alter form functionality to perform unintended actions, leading to significant security risks like data manipulation or unauthorized access. This means that a simple change in a form could open the door to further vulnerabilities, making it a high-stakes game. 🔥
Think of it like allowing a guest at a restaurant to modify the entire menu instead of just their order—what could go wrong? This vulnerability lets someone with limited access change the entire dining experience, potentially serving up some unwanted surprises! This vulnerability arises due to improper authorization checks when modifying the YAML frontmatter through a POST request. An attacker with basic content permissions can manipulate critical fields that dictate form behavior, creating potential pathways for exploitation.
An editor could alter form functionality to perform unintended actions, leading to significant security risks like data manipulation or unauthorized access. This means that a simple change in a form could open the door to further vulnerabilities, making it a high-stakes game. 🔥 Upgrade to Grav 1.8.0-beta.27 or later immediately to close this loophole. Also, review and tighten access controls for user roles to ensure editors can only change what they should. ⚠️ You've got this! By taking action, you'll be enhancing your security defenses in no time! 🛡️
| Product | Versions | Fixed in |
|---|---|---|
| getgrav/grav | < 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 | — |