Description
Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.6, the Grav API plugin WebhookController.php accepts webhook URLs after only FILTER_VALIDATE_URL syntax validation, and WebhookDispatcher.php initializes cURL without CURLOPT_PROTOCOLS or CURLOPT_REDIR_PROTOCOLS restrictions. An account with api.webhooks.write can submit file, dict, gopher, private-network, or link-local targets, retrieve local files and delivery response bodies, and pivot requests to internal services or cloud metadata endpoints. This issue is fixed in version 1.0.6.
Published: 2026-08-19
Score: 9.4 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

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.

Generated by OpenCVE AI on August 20, 2026 at 14:48 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Grav API plugin to version 1.0.6 or later, which enforces protocol restrictions on cURL.
  • Restrict the api.webhooks.write permission to trusted users or remove it from accounts that do not require webhook functionality.
  • Implement network‑level controls, such as firewall rules, to block outbound connections to private network ranges and disallow internal protocol usage when an immediate patch is not feasible.

Generated by OpenCVE AI on August 20, 2026 at 14:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 19 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 19 Aug 2026 17:00:00 +0000

Type Values Removed Values Added
First Time appeared Getgrav
Getgrav grav
Getgrav grav-plugin-api
Vendors & Products Getgrav
Getgrav grav
Getgrav grav-plugin-api

Wed, 19 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.6, the Grav API plugin WebhookController.php accepts webhook URLs after only FILTER_VALIDATE_URL syntax validation, and WebhookDispatcher.php initializes cURL without CURLOPT_PROTOCOLS or CURLOPT_REDIR_PROTOCOLS restrictions. An account with api.webhooks.write can submit file, dict, gopher, private-network, or link-local targets, retrieve local files and delivery response bodies, and pivot requests to internal services or cloud metadata endpoints. This issue is fixed in version 1.0.6.
Title Grav API Plugin: Webhook SSRF via Unrestricted cURL Protocols
Weaknesses CWE-918
References
Metrics cvssV4_0

{'score': 9.4, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}


Subscriptions

Getgrav Grav Grav-plugin-api
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T18:44:04.914Z

Reserved: 2026-07-14T20:22:04.394Z

Link: CVE-2026-62668

cve-icon Vulnrichment

Updated: 2026-08-19T18:43:38.719Z

cve-icon NVD

Status : Received

Published: 2026-08-19T16:18:19.317

Modified: 2026-08-19T19:17:21.980

Link: CVE-2026-62668

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T15:00:05Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)