CVE-2026-32261
PHP vulnerability analysis and mitigation

Overview

CVE-2026-32261 is a Server-Side Template Injection (SSTI) vulnerability in the Craft CMS Webhooks plugin that enables Remote Code Execution (RCE) for authenticated users with control panel access. The flaw affects craftcms/webhooks versions >= 3.0.0 and < 3.2.0 (Composer package). It was published and patched on March 16, 2026, with the fix released in version 3.2.0. The vulnerability carries a CVSS v4.0 base score of 8.5 (High) (Github Advisory, GHSA Advisory).

Technical details

The root cause is classified as CWE-1336 (Improper Neutralization of Special Elements Used in a Template Engine). The Webhooks plugin passes user-supplied template content — including payload, header, webhook URL, and debounce key templates — directly to Twig's renderString() function without enabling sandbox protection, allowing injected Twig expressions to call arbitrary PHP functions. Exploitation requires only network access and authenticated control panel credentials with Webhooks plugin permissions; no user interaction is needed, and the vulnerability persists even when allowAdminChanges is set to false. The fix (commit 8834499) resolves the issue by enabling the Twig sandbox environment when enableTwigSandbox is configured, and bumps the minimum Craft CMS requirement to 4.17+ or 5.9+ (Github Advisory, Patch Commit).

Impact

Successful exploitation allows an authenticated attacker to execute arbitrary PHP functions on the server, leading to full remote code execution, unauthorized data access, and potential data exfiltration. Both confidentiality and integrity of the vulnerable system are rated High impact, while availability is unaffected per the CVSS scoring. An attacker achieving RCE could pivot to lateral movement within the hosting environment, install backdoors, or exfiltrate sensitive application data and credentials (Github Advisory).

Exploitability

There is no public proof-of-concept exploit or evidence of in-the-wild exploitation at this time. The EPSS score is approximately 0.012–0.017%, placing it in the 4th percentile for exploitation likelihood within 30 days. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The vulnerability was reported by researcher "Neosprings" (Github Advisory).

Exploitation steps

  1. Reconnaissance: Identify Craft CMS installations using the Webhooks plugin (versions >= 3.0.0, < 3.2.0) via Composer package metadata, public plugin listings, or web fingerprinting.
  2. Obtain credentials: Acquire valid Craft CMS control panel credentials for an account with permissions to access the Webhooks plugin (e.g., through phishing, credential stuffing, or insider access).
  3. Access the Webhooks plugin: Log into the Craft CMS control panel and navigate to the Webhooks plugin configuration interface.
  4. Inject SSTI payload: In a template field (payload body, header, webhook URL, or debounce key), insert a malicious Twig expression that invokes an arbitrary PHP function, for example: {{ ['id'] | filter('system') | join }} or similar Twig-based PHP function call syntax.
  5. Trigger webhook execution: Save the webhook configuration and trigger an event that causes the webhook to fire, causing the server to render the injected template via renderString() without sandbox restrictions.
  6. Achieve RCE: The injected PHP function executes on the server, enabling command execution, reverse shell establishment, or data exfiltration (Github Advisory, GHSA Advisory).

Indicators of compromise

  • Logs: Craft CMS application logs showing unexpected PHP function calls (e.g., system, exec, shell_exec, passthru) originating from webhook template rendering; PHP error logs with unusual Twig evaluation output.
  • File System: Unexpected new files (web shells, scripts) written to the Craft CMS web root or writable directories by the web server process; modification timestamps on plugin files inconsistent with deployment history.
  • Network: Outbound connections from the web server to unknown external IPs or domains, particularly following webhook trigger events; unusual DNS lookups from the server process.
  • Process: Unexpected child processes spawned by the PHP-FPM or web server process (e.g., bash, sh, curl, wget, python) coinciding with webhook activity.
  • Application: New or modified webhook configurations in the Craft CMS control panel containing Twig expressions with PHP function calls; audit log entries showing webhook edits by non-administrative accounts.

Mitigation and workarounds

The primary remediation is to update the craftcms/webhooks Composer package to version 3.2.0 or later, which introduces Twig sandbox protection for all template rendering. Note that version 3.2.0 also raises the minimum Craft CMS requirement to 4.17+ or 5.9+, so the CMS itself may need to be updated first. As an interim workaround, restrict Craft CMS control panel access and Webhooks plugin permissions to only fully trusted administrators, and audit existing webhook configurations for any suspicious Twig template content. Monitor PHP execution logs for anomalous function calls from webhook processing (Github Advisory, Patch Commit).

Community reactions

The vulnerability was reported by researcher "Neosprings" and published by maintainer "angrybrad" (Brandon Kelly) via GitHub Security Advisories on March 16, 2026. No significant broader media coverage or notable community commentary beyond the advisory itself has been identified at this time (GHSA Advisory).

Additional resources


SourceThis report was generated using AI

Related PHP vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-59989CRITICAL9.2
  • PHP logoPHP
  • phalcon/cphalcon
NoYesAug 21, 2026
CVE-2026-63135HIGH8.2
  • PHP logoPHP
  • yourls/yourls
NoYesAug 21, 2026
GHSA-p2ch-c2c3-4xm5MEDIUM6.1
  • PHP logoPHP
  • winter/wn-backend-module
NoYesAug 20, 2026
GHSA-8hgv-xc77-jmcrMEDIUM5.1
  • PHP logoPHP
  • getgrav/grav
NoYesAug 21, 2026
GHSA-hq84-x37p-j6q5MEDIUM4.5
  • PHP logoPHP
  • winter/wn-backend-module
NoYesAug 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management