---
id: CVE-2026-11430
title: Grav CMS Scheduler Webhook Authentication Bypass via Null Short-Circuit
summary: >-
  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…
severity: high
cvss: 7.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L'
cvssSource: cna
cwe:
  - CWE-303
vendor: Trilby Media
product: grav-plugin-scheduler-webhook
affected:
  - grav-plugin-scheduler-webhook < 1.1.3
  - getgrav/grav < 2.0.9
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-08-07T20:56:04.638693Z'
published: '2026-08-07'
updated: '2026-10-01'
sourceUpdated: '2026-10-01T21:44:58.603Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-11430'
references:
  - url: 'https://github.com/getgrav/grav/security/advisories/GHSA-xwv3-2mv2-w33x'
    label: GitHub Security Advisory
  - url: 'https://github.com/getgrav/grav'
    label: Product Repository
  - url: >-
      https://github.com/getgrav/grav/commit/694f1dae06d9061bbf0669c4291e3b206f998d71
    label: Patch Commit
  - url: >-
      https://www.vulncheck.com/advisories/grav-cms-scheduler-webhook-authentication-bypass-via-null-short-circuit
tags:
  - cve.org
epss: 0.00958
epssPercentile: 0.60071
ingestedAt: '2026-10-01T23:03:32.843Z'
---

## Overview

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.

## Affected

- `grav-plugin-scheduler-webhook < 1.1.3`
- `getgrav/grav < 2.0.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
