Description
Grav CMS's scheduler-webhook plugin contains an authentication bypass in the webhook token check. When the webhook feature is enabled but no webhookToken is configured, a compound conditional short-circuits and skips token validation, so an unauthenticated remote attacker who can reach POST /scheduler/webhook can trigger the operator's already-configured scheduled jobs by sending a single request. The primitive is triggering-existing-jobs, not attacker-chosen command execution: the attacker controls when the jobs run and which one runs (via ?job=), but does not control what the jobs do. Code execution follows only when the operator has configured a job that shells out, and even then the attacker controls timing rather than payload. Not a default-install issue: reaching the endpoint requires the separate scheduler-webhook GPM plugin to be installed, scheduler.modern.webhook.enabled to be true (default false), and no webhookToken to be configured; a stock Grav or Grav-Admin install exposes nothing here.
Published: 2026-08-07
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is an authentication bypass in Grav CMS’s scheduler‑webhook plugin. When the webhook feature is enabled but no webhookToken is configured, a compound conditional short‑circuits and skips token validation. An unauthenticated attacker can POST to /scheduler/webhook, specify a job via the ?job= parameter, and trigger the operator’s pre‑configured scheduled job. The attacker cannot choose arbitrary commands; they only influence the timing and which pre‑configured job runs, though if that job shells out, code execution can occur.

Affected Systems

Affected products are Trilby Media’s Grav CMS and the grav‑plugin‑scheduler‑webhook extension. Any Grav installation that has the scheduler‑webhook plugin installed, has scheduler.modern.webhook.enabled set to true, and has not defined a webhookToken is vulnerable. The plugin is not included by default in stock Grav or Grav‑Admin installs, so only sites that explicitly add the GPM plugin and enable the feature are at risk. No specific product version information is provided in the advisory.

Risk and Exploitability

The CVSS score of 6.9 classifies this as a moderate severity vulnerability. The EPSS score is not available, and the flaw is not listed in the CISA KEV catalog, indicating no widespread public exploitation at the time of reporting. The likely attack vector is remote network access to the HTTP endpoint /scheduler/webhook; any client that can reach the Grav site can exploit the loophole. Because the flaw allows an unauthenticated user to trigger existing scheduled jobs, the impact could extend to unintended code execution if those jobs perform shell operations. Although the risk is moderate and not critical, the vulnerability remains useful for adversaries seeking to automate actions or amplify other attacks.

Generated by OpenCVE AI on August 7, 2026 at 20:26 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Grav CMS and grav‑plugin‑scheduler‑webhook to a version that fixes the authentication bypass (see the commit at https://github.com/getgrav/grav/commit/694f1dae06d9061bbf0669c4291e3b206f998d71).
  • If the webhook feature is unnecessary, set scheduler.modern.webhook.enabled to false or uninstall the scheduler‑webhook plugin to remove the attack surface.
  • Configure a non‑empty webhookToken in the plugin’s configuration so that every request performs token validation.

Generated by OpenCVE AI on August 7, 2026 at 20:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 07 Aug 2026 19:15:00 +0000

Type Values Removed Values Added
Description Grav CMS's scheduler-webhook plugin contains an authentication bypass in the webhook token check. When the webhook feature is enabled but no webhookToken is configured, a compound conditional short-circuits and skips token validation, so an unauthenticated remote attacker who can reach POST /scheduler/webhook can trigger the operator's already-configured scheduled jobs by sending a single request. The primitive is triggering-existing-jobs, not attacker-chosen command execution: the attacker controls when the jobs run and which one runs (via ?job=), but does not control what the jobs do. Code execution follows only when the operator has configured a job that shells out, and even then the attacker controls timing rather than payload. Not a default-install issue: reaching the endpoint requires the separate scheduler-webhook GPM plugin to be installed, scheduler.modern.webhook.enabled to be true (default false), and no webhookToken to be configured; a stock Grav or Grav-Admin install exposes nothing here.
Title Grav CMS Scheduler Webhook Authentication Bypass via Null Short-Circuit
Weaknesses CWE-303
References
Metrics cvssV3_1

{'score': 7.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L'}

cvssV4_0

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-07T19:19:03.913Z

Reserved: 2026-06-05T21:01:53.800Z

Link: CVE-2026-11430

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-07T20:30:17Z

Weaknesses
  • CWE-303

    Incorrect Implementation of Authentication Algorithm