Description
Grav CMS before 2.0.0-beta.2 contains multiple code-execution vulnerabilities. Three unsafe unserialize() calls - in Scheduler\JobQueue, Framework\Cache\Adapter\FileCache, and Session - deserialize untrusted data without restricting allowed classes, enabling PHP object injection and, via a gadget chain, arbitrary code execution where an attacker controls the serialized input. Additionally, InstallCommand's git clone operation passes the branch, url, and path parameters into a shell command without escaping, allowing OS command injection via plugin/theme installation (which requires admin access). A Twig security blocklist bypass (server-side template injection) is also present. The issues are fixed in 2.0.0-beta.2.
Published: 2026-06-30
Score: 9.3 Critical
EPSS: 1.7% Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability exists in Grav CMS versions older than 2.0.0-beta.2 and is exposed through three unsafe unserialize() calls—one in Scheduler\\JobQueue, one in Framework\\Cache\\Adapter\\FileCache, and one in Session—allowing PHP object injection. An attacker controlling the serialized input can trigger a gadget chain that leads to arbitrary code execution. In addition, InstallCommand’s git clone operation concatenates branch, url, and path parameters directly into a shell command, permitting OS command injection when installing plugins or themes—a task that requires administrative privileges. A Twig security blocklist bypass is also present, exposing server‑side template injection. These flaws collectively allow an attacker to execute arbitrary code on the affected system.

Affected Systems

Grav CMS releases prior to 2.0.0-beta.2 are vulnerable; no specific minor versions are listed beyond the fact that the issue exists until the targeted fix.

Risk and Exploitability

The CVSS score of 9.3 signals critical severity. The EPSS score of 2% indicates a low but non‑zero exploitation probability, and the vulnerability is not listed in CISA KEV catalog. Remote exploitation is possible through the web interface serialized input, leading to PHP object injection. InstallCommand’s git clone operation also allows OS command injection, but this requires administrative access to install plugins or themes. Consequently, when the system accepts untrusted serialized data or an attacker has admin rights, these weaknesses can be exploited.

Generated by OpenCVE AI on July 17, 2026 at 15:13 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the vendor‑provided fix by upgrading Grav CMS to version 2.0.0‑beta.2 or later, which mitigates the unsafe unserialize (CWE‑502) and command injection (CWE‑78) vulnerabilities.
  • Restrict installation of plugins and themes to trusted sources and validate or sanitize the branch, url, and path parameters used in git clone operations to address CWE‑78.
  • Limit administrative access to the Grav backend, applying IP restrictions, firewall rules, or VPN usage, to reduce exposure to both CWE‑502 and CWE‑78 exploits.

Generated by OpenCVE AI on July 17, 2026 at 15:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 01 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 01 Jul 2026 09:30:00 +0000

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

Tue, 30 Jun 2026 22:45:00 +0000

Type Values Removed Values Added
Description Grav CMS before 2.0.0-beta.2 contains multiple code-execution vulnerabilities. Three unsafe unserialize() calls - in Scheduler\JobQueue, Framework\Cache\Adapter\FileCache, and Session - deserialize untrusted data without restricting allowed classes, enabling PHP object injection and, via a gadget chain, arbitrary code execution where an attacker controls the serialized input. Additionally, InstallCommand's git clone operation passes the branch, url, and path parameters into a shell command without escaping, allowing OS command injection via plugin/theme installation (which requires admin access). A Twig security blocklist bypass (server-side template injection) is also present. The issues are fixed in 2.0.0-beta.2.
Title Grav - Multiple Remote Code Execution Vulnerabilities via Unsafe Unserialize and Command Injection
First Time appeared Getgrav
Getgrav grav-plugin-admin
Weaknesses CWE-502
CWE-78
CPEs cpe:2.3:a:getgrav:grav-plugin-admin:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav-plugin-admin
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'}


Subscriptions

Getgrav Grav Grav-plugin-admin
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-01T14:40:02.529Z

Reserved: 2026-06-22T17:09:16.556Z

Link: CVE-2026-56700

cve-icon Vulnrichment

Updated: 2026-07-01T14:39:58.056Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-17T15:15:16Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data

  • CWE-78

    Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')