Cyber Resilience

CVE-2026-28697

Craftcms Craft Cms 4.0.0 – 4.17.0

Public PoC
Published
04 March 2026
Modified
05 March 2026
Patch / advisory
CVSS Score v4 9.4
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.011 62th percentile
Risk Priority 34 floored blend · peak EPSS

Summary

CVE-2026-28697 is a critical-severity Improper Neutralization of Special Elements Used in a Template Engine (CWE-1336) vulnerability in Craftcms Craft Cms. Its CVSS base score is 9.4 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Template Injection (T1221); ranked in the top 38% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SI-10 (Information Input Validation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-28697 is a critical remote code execution (RCE) vulnerability (CVSS 9.1; AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H) affecting Craft, a content management system (CMS). It stems from a Server-Side Template Injection (SSTI) flaw (CWE-1336) in Twig template fields, such as Email Templates, in versions prior to 4.17.0-beta.1 and 5.9.0-beta.1. An authenticated administrator can inject malicious payloads into these fields, exploiting the craft.app.fs.write() method to write arbitrary PHP scripts to web-accessible directories.

The attack requires administrator privileges but can be carried out remotely with low complexity. Once injected, the SSTI payload allows the attacker to persist a malicious PHP file on the server. Accessing this file via a browser triggers execution of arbitrary system commands, potentially leading to full server compromise, data exfiltration, or further lateral movement.

Craft CMS patches this issue in versions 4.17.0-beta.1 and 5.9.0-beta.1. Security practitioners should upgrade immediately and review the GitHub security advisory (GHSA-v47q-jxvr-p68x), commit 9dc2a4a3ec8e9cd5e8c0d1129f36371437519197, and pull requests #18216 and #18219 for implementation details and verification steps.

EU & UK References

Vulnerability Data

Craft is a content management system (CMS). Prior to 4.17.0-beta.1 and 5.9.0-beta.1, an authenticated administrator can achieve Remote Code Execution (RCE) by injecting a Server-Side Template Injection (SSTI) payload into Twig template fields (e.g., Email Templates). By calling the craft.app.fs.write()…

more

method, an attacker can write a malicious PHP script to a web-accessible directory and subsequently access it via the browser to execute arbitrary system commands. This vulnerability is fixed in 4.17.0-beta.1 and 5.9.0-beta.1.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1221 Template Injection Stealth
Adversaries may create or modify references in user document templates to conceal malicious code or force authentication attempts.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2025-57811Same product: Craftcms Craft Cms
CVE-2025-68454Same product: Craftcms Craft Cms
CVE-2025-46731Same product: Craftcms Craft Cms
CVE-2026-28784Same product: Craftcms Craft Cms
CVE-2026-28695Same product: Craftcms Craft Cms
CVE-2026-28783Same product: Craftcms Craft Cms
CVE-2023-36260Same product: Craftcms Craft Cms
CVE-2023-40035Same product: Craftcms Craft Cms
CVE-2020-9757Same product: Craftcms Craft Cms
CVE-2023-32679Same product: Craftcms Craft Cms

Affected Assets

craftcms
craft cms
4.0.0, 5.0.0 · 4.0.0 — 4.17.0 · 5.0.0 — 5.9.0

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V1.3.2
  • V1.3.7
  • V1.3.10

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and static analysis can discover missing neutralization of template directives.

Input validation rejects or sanitizes untrusted data before it reaches the template engine, stopping injection of special syntax.

Security engineering principles require use of safe templating APIs and proper escaping of external input.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly require proper input neutralization in template engines to prevent injection.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing can detect template-injection flaws but does not itself implement neutralization controls.

prevents

Secure development life cycle mandates input validation and sanitization that directly prevents template-injection weaknesses.

prevents

Application security requirements explicitly call for neutralizing special elements in template engines.

prevents

Secure architecture principles reduce the likelihood of unsafe template processing but do not prescribe specific neutralization techniques.

prevents

Secure coding standards require proper escaping or sandboxing of template directives, directly mitigating CWE-1336.

References