Skip to content
Heist/ feed
Back to feed
Critical

Grav API Plugin: Webhook SSRF via Unrestricted cURL Protocols

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-62234, CVE-2026-62668
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 16:57 UTC · Revision 1

Source evidence

Grav API Plugin: Webhook SSRF via Unrestricted cURL Protocols

core-osv · Original source

Published 19 Aug 2026, 15:29 UTC

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.

osv:CVE-2026-62668
Complete source record
{
  "id": "132328f749cc40b3046fd9282a5b2c0207747b9c7a38a30f207ec2ef58d6c66c",
  "url": "https://osv.dev/vulnerability/CVE-2026-62668",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Grav API Plugin: Webhook SSRF via Unrestricted cURL Protocols",
    "summary": "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.",
    "evidence": "osv:CVE-2026-62668",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-62668",
      "aliases": [
        "CVE-2026-62234",
        "CVE-2026-62668",
        "GHSA-58q8-f7v4-w2vf"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "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"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/getgrav/grav",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "c22d77d2ec2a9202d9f005f4ceda9c1483921286"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.0.4"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  }
                ]
              }
            },
            {
              "repo": "https://github.com/getgrav/grav-plugin-api",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "fe5146a3efeb39d1f405499188e5270bc002b0a6"
                },
                {
                  "fixed": "dfcc947f0d6758772caac290c68fe8d4c4a4874e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.0.6"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "dfcc947f0d6758772caac290c68fe8d4c4a4874e"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "fe5146a3efeb39d1f405499188e5270bc002b0a6"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "1.0.6"
                  }
                ]
              }
            }
          ],
          "versions": [
            "2.0.3",
            "2.0.2",
            "2.0.1",
            "1.7.53",
            "1.7.52",
            "1.7.51",
            "1.7.39.1",
            "1.7.39",
            "1.7.38",
            "1.7.37.1",
            "1.7.37",
            "1.7.36",
            "1.7.35",
            "1.7.34",
            "1.7.33",
            "1.7.32",
            "1.7.31",
            "1.7.30",
            "1.7.29.1",
            "1.7.29",
            "1.7.28",
            "1.7.27.1",
            "1.7.27",
            "1.7.26.1",
            "1.7.26",
            "1.7.25",
            "1.7.24",
            "1.7.23",
            "1.7.22",
            "1.7.21",
            "1.7.20",
            "1.7.19",
            "1.7.18",
            "1.7.17",
            "1.7.16",
            "1.7.15",
            "1.7.14",
            "1.7.13",
            "1.7.12",
            "1.7.10",
            "1.7.9",
            "1.7.8",
            "1.7.7",
            "1.7.6",
            "1.7.5",
            "1.7.4",
            "1.7.3",
            "1.7.1",
            "1.7.0",
            "1.7.0-rc.20",
            "1.7.0-rc.19",
            "1.7.0-rc.18",
            "1.7.0-rc.17",
            "1.7.0-rc.15",
            "1.7.0-rc.14",
            "1.7.0-rc.13",
            "1.7.0-rc.12",
            "1.7.0-rc.10",
            "1.7.0-rc.9",
            "1.7.0-rc.8",
            "1.7.0-rc.7",
            "1.7.0-rc.6",
            "1.7.0-rc.5",
            "1.7.0-rc.4",
            "1.7.0-rc.3",
            "1.7.0-rc.2",
            "1.7.0-rc.1",
            "1.7.0-beta.10",
            "1.7.0-beta.9",
            "1.7.0-beta.8",
            "1.7.0-beta.7",
            "1.7.0-beta.6",
            "1.7.0-beta.5",
            "1.7.0-beta.4",
            "1.7.0-beta.3",
            "1.7.0-beta.2",
            "1.7.0-beta.1",
            "1.6.0-rc.4",
            "1.6.0-rc.3",
            "1.6.0-rc.2",
            "1.6.0-rc.1",
            "1.6.0-beta.8",
            "1.6.0-beta.7",
            "1.6.0-beta.6",
            "1.6.0-beta.5",
            "1.6.0-beta.2",
            "1.6.0-beta.1",
            "1.5.0-rc.1",
            "1.5.0-beta.2",
            "1.5.0-beta.1",
            "1.3.0-rc.5",
            "1.3.0-rc.4",
            "1.3.0-rc.3",
            "1.3.0-rc.1",
            "1.2.0-rc.3",
            "1.2.0-rc.2",
            "1.2.0-rc.1",
            "1.1.9-rc.3",
            "1.1.9-rc.2",
            "1.1.9-rc.1",
            "1.1.0-rc.3",
            "1.1.0-rc.2",
            "1.1.0-rc.1",
            "1.1.0-beta.5",
            "1.1.0-beta.4",
            "1.1.0-beta.3",
            "1.1.0-beta.2",
            "1.1.0-beta.1",
            "0.9.19",
            "0.9.18",
            "0.9.17",
            "0.9.16",
            "0.9.15",
            "0.9.14",
            "0.9.13",
            "0.9.12",
            "0.9.11",
            "0.9.10",
            "0.9.9",
            "0.9.8",
            "0.9.7",
            "0.9.6",
            "0.9.5",
            "0.9.4",
            "0.9.3",
            "0.9.2",
            "0.9.0",
            "0.8.0",
            "1.0.5",
            "1.0.4",
            "1.0.3",
            "1.0.2",
            "1.0.1",
            "1.0.0",
            "1.0.0-rc.16",
            "1.0.0-rc.15",
            "1.0.0-rc.14",
            "1.0.0-rc.13",
            "1.0.0-rc.12",
            "1.0.0-rc.11",
            "1.0.0-rc.10",
            "1.0.0-rc.9",
            "1.0.0-rc.8",
            "1.0.0-rc.7",
            "1.0.0-rc.6",
            "1.0.0-rc.5",
            "1.0.0-rc.4",
            "1.0.0-rc.3",
            "1.0.0-rc.2",
            "1.0.0-rc.1",
            "1.0.0-beta.17",
            "1.0.0-beta.16",
            "1.0.0-beta.15",
            "1.0.0-beta.14",
            "1.0.0-beta.13",
            "1.0.0-beta.12",
            "1.0.0-beta.11",
            "1.0.0-beta.10",
            "1.0.0-beta.9",
            "1.0.0-beta.8",
            "1.0.0-beta.7",
            "1.0.0-beta.6",
            "1.0.0-beta.5",
            "1.0.0-beta.4",
            "1.0.0-beta.3",
            "1.0.0-beta.2",
            "1.0.0-beta.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-62668.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:30.594817581Z",
      "provider": "osv",
      "references": [
        "https://github.com/getgrav/grav-plugin-api/releases/tag/1.0.6",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/62xxx/CVE-2026-62668.json",
        "https://github.com/getgrav/grav/security/advisories/GHSA-58q8-f7v4-w2vf",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-62668",
        "https://github.com/getgrav/grav-plugin-api/commit/dfcc947f0d6758772caac290c68fe8d4c4a4874e"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-918"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/62xxx/CVE-2026-62668.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-62234",
        "evidence": "/aliases"
      },
      {
        "value": "CVE-2026-62668",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 497649,
  "published_at": "2026-08-19T15:29:24.452+00:00"
}