Description
Grav API plugin versions before 1.0.13 fail to enforce API key scope caps in ConfigController super-scope gates, allowing scoped keys to write scheduler configuration. The scope cap is applied only inside requirePermission(), while the scheduler and backups gates use a bare isSuperAdmin() check that never consults api_key_scopes. An attacker holding an API key scoped to api.config.write that was minted on a super account can therefore inject arbitrary commands into scheduler.custom_jobs, which Job::run() passes to a Symfony Process, achieving operating system command execution as the web server user.
Published: 2026-08-14
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Grav API plugin before version 1.0.13 fails to enforce API key scope caps within ConfigController’s scope gates. An attacker possessing a scoped api.config.write key issued from a super account can write arbitrary shell commands into the scheduler.custom_jobs configuration. When the scheduler runs, Symfony’s Process component blindly executes those commands as the web server user, enabling full remote code execution. This is a broken access control vulnerability (CWE‑269).

Affected Systems

This flaw affects deployments of the Grav Content Management System that use the API plugin before version 1.0.13. Those environments are typically PHP‑based web servers with Symfony components for scheduling. Any installation that exposes the API endpoint for scheduler administration and uses a scoped api.config.write key is potentially vulnerable.

Risk and Exploitability

The flaw has a CVSS score of 8.7, signifying critical severity. It is not listed in the CISA KEV catalog and has an EPSS score of < 1 %, indicating a very low but nonzero exploitation probability. The most likely attack vector is via the public API endpoint that accepts scheduler configuration, as an attacker with a scoped api.config.write key can inject commands. Successful exploitation would give the attacker full control of the affected system.

Generated by OpenCVE AI on August 24, 2026 at 11:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Grav API plugin to version 1.0.13 or newer to restore proper scope enforcement.
  • Revoke or replace any API keys that carry the api.config.write scope to remove write access to scheduler jobs.
  • If an immediate upgrade is not possible, block or restrict the scheduler.custom_jobs endpoint or eliminate write permissions for scheduler configuration.

Generated by OpenCVE AI on August 24, 2026 at 11:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 24 Aug 2026 10:45:00 +0000

Type Values Removed Values Added
Description Grav API plugin versions before 1.0.13 fail to enforce API key scope caps in ConfigController super-scope gates, allowing scoped keys to write scheduler configuration. Attackers with a scoped api.config.write key can inject arbitrary commands into scheduler.custom_jobs that execute via Symfony Process for remote code execution. Grav API plugin versions before 1.0.13 fail to enforce API key scope caps in ConfigController super-scope gates, allowing scoped keys to write scheduler configuration. The scope cap is applied only inside requirePermission(), while the scheduler and backups gates use a bare isSuperAdmin() check that never consults api_key_scopes. An attacker holding an API key scoped to api.config.write that was minted on a super account can therefore inject arbitrary commands into scheduler.custom_jobs, which Job::run() passes to a Symfony Process, achieving operating system command execution as the web server user.
Metrics cvssV3_1

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

cvssV4_0

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

cvssV3_1

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

cvssV4_0

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


Sat, 15 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Fri, 14 Aug 2026 11:45:00 +0000

Type Values Removed Values Added
Description Grav API plugin versions before 1.0.13 fail to enforce API key scope caps in ConfigController super-scope gates, allowing scoped keys to write scheduler configuration. Attackers with a scoped api.config.write key can inject arbitrary commands into scheduler.custom_jobs that execute via Symfony Process for remote code execution.
Title Grav API Plugin before 1.0.13 RCE via ConfigController scope bypass
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-269
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

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

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-24T10:28:33.958Z

Reserved: 2026-08-10T15:12:59.509Z

Link: CVE-2026-72830

cve-icon Vulnrichment

Updated: 2026-08-14T18:01:50.617Z

cve-icon NVD

Status : Deferred

Published: 2026-08-14T12:16:46.277

Modified: 2026-08-31T20:38:54.340

Link: CVE-2026-72830

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-24T11:30:03Z

Weaknesses
  • CWE-269

    Improper Privilege Management