Impact
The Grav API plugin allows an authenticated user with the api.webhooks.write permission to submit arbitrary webhook URLs. Before version 1.0.6 the input validation only performed FILTER_VALIDATE_URL and the internal cURL initialization omitted restrictions on protocols and redirection protocols. This opens the plugin to Server‑Side Request Forgery (CWE‑918), letting an attacker craft URLs that use protocols such as file, dict, gopher, private‑network, or link‑local to retrieve local files, access internal services, or reach cloud metadata endpoints. The result is data exfiltration, potential pivot to internal infrastructure, and in some cases remote code execution if the targeted internal service contains additional vulnerabilities.
Affected Systems
The vulnerability affects all Grav CMS installations that use the Grav API plugin prior to version 1.0.6. The affected products are getgrav:grav and getgrav:grav-plugin-api. Any instance running a version earlier than 1.0.6 is susceptible. The fix was introduced in release 1.0.6.
Risk and Exploitability
With a CVSS score of 9.4, the flaw is considered Critical. The EPSS score is < 1%, and the vulnerability is not listed in CISA’s KEV catalog, but the lack of protocol restrictions and the high impact score indicate a high likelihood of exploitation in environments where webhook write access is granted to non‑trusted actors. Exploitation requires only the ability to submit a webhook URL; no additional conditions are enumerated, so the attack vector is straightforward for an attacker with the relevant permission.
OpenCVE Enrichment