Skip to main content

Formie CVE-2026-52889

| EUVDEUVD-2026-62518 CRITICAL
Improper Neutralization of Special Elements Used in a Template Engine (CWE-1336)
2026-07-06 https://github.com/verbb/formie GHSA-565m-g33j-jq96
9.8
CVSS 3.1 · Vendor: https://github.com/verbb/formie
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Locate public Formie form with dynamic Hidden field
  2. Delivery
    Craft Twig payload in User Agent/Referer/query/cookie
  3. Exploit
    Request page to trigger Twig render
  4. Execution
    Server-side template evaluation in Craft
  5. Impact
    Disclose secrets or execute code

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V1 - Encoding and Sanitization Template injection prevention
Exploitation Conditions

Exploitation requires the target Craft CMS site to publicly render a Formie form (verbb/formie 3.0.0-beta.1-3.1.26) that contains a Hidden field configured with one of the request-derived dynamic default value types: HTTP User Agent, HTTP Referer URL, Current URL, Current URL without Query String, Query Parameter, or Cookie Value. The attacker then supplies Twig syntax in the corresponding request element (that header, cookie, URL, or query parameter) and triggers server-side evaluation simply by causing the form to render. Per the CVSS vector (PR:N/UI:N) the attacker is unauthenticated and no victim interaction is needed. The principal limiting factor is that this Hidden-field-with-request-derived-default configuration is not the default form setup - sites without such a field are not exploitable - and the ultimate impact (info disclosure vs. state change vs. RCE) further depends on which application objects and functions the site's Twig environment exposes.

Impact

The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, score 9.8) describes network-reachable, unauthenticated, low-complexity exploitation with full CIA impact - consistent with unauthenticated SSTI-to-RCE. The key real-world limiter is configuration-dependent: exploitation is only possible if a public form actually contains a Hidden field wired to a request-derived default, which is not Craft/Formie's default posture, so the true attack surface is narrower than the 9.8 alone implies. No EPSS score, KEV listing, SSVC decision, or POC was supplied, so probability-of-exploitation signals are absent; this should be treated as high-impact-if-configured rather than confirmed widespread exploitation. There is no conflict between the vector and the description - both point to remote unauthenticated triggering - but the automatability and in-the-wild status are genuinely unknown from the provided data.

Exploit ScenarioDerived

An attacker identifies a public Craft CMS site running Formie with a contact or signup form whose Hidden field captures, for example, the Referer or a query parameter as its default. The attacker requests the form page with a crafted Twig payload placed in that request element (e.g., the Referer header or ?param= value); when Formie renders the form, Craft's Twig engine evaluates the payload server-side, letting the attacker read application secrets or, depending on exposed Twig capabilities and site configuration, execute code. No authentication or user interaction is required and complexity is low, though no public POC was provided.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 06, 2026

Server-side template injection in Formie, a forms plugin for Craft CMS 5 (verbb/formie 3.0.0-beta.1 through 3.1.26), allows unauthenticated attackers to inject Twig syntax through request-controlled inputs that Hidden fields use as dynamic default values. When a public form contains a Hidden field seeded from the User Agent, Referer, Current URL, a query parameter, or a cookie, the attacker-supplied value reaches Craft's Twig rendering layer and is evaluated server-side, potentially yielding information disclosure, application-state modification, or remote code execution. No public exploit identified at time of analysis, though the flaw is tagged RCE/SSTI and rated CVSS 9.8.

RemediationAI

Vendor-released patch: update verbb/formie to 3.1.27 or later (composer require verbb/formie:^3.1.27 then run migrations), per the advisory at https://github.com/verbb/formie/security/advisories/GHSA-565m-g33j-jq96. If immediate patching is not possible, the vendor-documented workaround is to stop using request-derived Hidden field defaults on public forms - specifically the HTTP User Agent, HTTP Referer URL, Current URL, Current URL without Query String, Query Parameter, and Cookie Value options - reconfiguring those fields to static or custom admin-authored defaults instead; the trade-off is loss of any legitimate request-context capture those fields provided. Alternatively, remove the affected Hidden fields from public forms entirely until the update is applied, accepting that any downstream logic or analytics depending on those hidden values will break until the fields are restored on the patched version.

Affected VersionsENISA

formie < 3.1.27

Affected Packages

composer verbb/formie fix: 3.1.27
euvd formie fix: 3.1.27

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in composer, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability lives in Formie's Hidden field front-end render path. Formie is a form-builder plugin for Craft CMS, which is built on the Twig template engine (via Yii). Hidden fields support 'dynamic' default values that Formie copies from the incoming HTTP request (User Agent, Referer, Current URL, Current URL without query string, a named query parameter, or a cookie value). That request-derived value was assigned to the field's defaultValue and then passed through Twig in Hidden::getFrontEndInputOptions(), meaning untrusted request data was treated as a template rather than as data. This is a textbook CWE-1336 (Server-Side Template Injection in a template engine): because Craft's normal Twig environment exposes application objects and functions, evaluating attacker Twig can escalate from expression evaluation to sensitive-data access or code execution. The fix restricts Twig rendering to the admin-authored 'custom' default option and treats all request-derived defaults as plain strings. The affected package is pkg:composer/verbb_formie.

Know when Ssti gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/verbb/formie) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

Unauthenticated, network-reachable SSTI triggered by simply rendering the form (AV:N/PR:N/UI:N); AC:L since exploitation is reliable once the request-derived Hidden field exists, with full CIA impact from Twig-based RCE.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (https://github.com/verbb/formie).

CVSS VectorVendor: https://github.com/verbb/formie

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

Summary

Formie Hidden fields could evaluate request-derived values as Twig during front-end form rendering.

When a Hidden field used a dynamic default value such as HTTP User Agent, Referer URL, Current URL, Query Parameter, or Cookie Value, the value was copied from the incoming request and later passed to Craft’s Twig rendering layer. This allowed an unauthenticated attacker to provide Twig syntax in request-controlled input and have it evaluated server-side when the form was rendered.

Affected Versions

verbb/formie for Craft 5:

  • Affected: >= 3.0.0-beta.1, <= 3.1.26
  • Patched: 3.1.27

Impact

An unauthenticated attacker could trigger server-side template evaluation by visiting a public form containing a Hidden field configured with a request-derived default value.

Because Craft’s normal Twig environment exposes application objects, this may lead to disclosure of sensitive information, modification of application state, or remote code execution depending on the site configuration and available Twig capabilities.

Technical Details

The issue exists in the Hidden field front-end render path. Request-derived Hidden field defaults were assigned to the field’s defaultValue, then rendered via Twig in Hidden::getFrontEndInputOptions().

The fix ensures Twig rendering is only performed for the custom default option, where the template source is admin-authored. Request-derived default options are now treated as plain strings.

Patches

Update to Formie 3.1.27 or later.

Workarounds

Until patched, avoid using request-derived Hidden field defaults on public forms, including:

  • HTTP User Agent
  • HTTP Refer URL
  • Current URL
  • Current URL without Query String
  • Query Parameter
  • Cookie Value

Alternatively, remove affected Hidden fields from public forms until the update is applied.

Credit

Name: Yanchon918s Email: [ao9s@ao9s.net](mailto:ao9s@ao9s.net)

Executive ViewAI

Why It Matters

Formie plugin for Craft CMS 5 (versions 3.0.0-beta.1 through 3.1.26) contains a server-side template injection vulnerability that permits unauthenticated attackers to execute arbitrary code through public web forms. Any organization exposing forms via Formie faces immediate risk of data breach, system compromise, or malware distribution without remediation.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable Hidden fields configured with dynamic default values sourced from request headers or parameters; (2) Deploy WAF rules to reject payloads containing Twig delimiters; (3) Move public forms behind authentication or IP allowlists; (4) Monitor form submission logs for template injection patterns ({{ , {%, {

characters). Monitor vendor security advisories for patch availability.

Threat Intelligence Overview

EPSS Score
0.7%
Top 50% exploitable
Prevalence
Low
popular form plugin but within the niche Craft CMS ecosystem
Threat Intel
1
1 source
Social Media
2
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Ssti

View all
CVE-2024-23692 CRITICAL POC
9.8 May 31

Rejetto HTTP File Server, up to and including version 2.3m, is vulnerable to a template injection vulnerability. Rated c

CVE-2025-47916 CRITICAL POC
10.0 May 16

Invision Community 5.0.0 through 5.0.6 contains an unauthenticated remote code execution vulnerability in the template e

CVE-2024-6386 CRITICAL POC
9.9 Aug 21

Remote code execution in the WPML WordPress multilingual plugin (versions up to and including 4.6.12) allows Contributor

CVE-2026-75650 CRITICAL POC
10.0 Sep 07

Server-side template injection in Adobe Commerce, Adobe Commerce B2B, and Magento Open Source allows remote unauthentica

CVE-2026-39980 CRITICAL POC
9.1 Apr 09

Server-Side Template Injection in OpenCTI notifier templates allows privileged administrators with 'Manage customization

CVE-2026-97359 CRITICAL POC
10.0 Sep 24

Unauthenticated remote code execution in Rejetto HFS2 (HTTP File Server) through version 2.4.0 lets an attacker execute

CVE-2025-23211 CRITICAL POC
9.9 Jan 28

Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve

CVE-2024-32651 CRITICAL POC
10.0 Apr 26

changedetection.io is an open source web page change detection, website watcher, restock monitor and notification servic

CVE-2024-4040 CRITICAL POC
10.0 Apr 22

A server side template injection vulnerability in CrushFTP in all versions before 10.7.1 and 11.1.0 on all platforms all

CVE-2026-15734 CRITICAL POC
9.8 Aug 06

Remote code execution in WGDashboard 4.3.2 and earlier lets authenticated attackers inject Server-Side Template Injectio

CVE-2024-24724 CRITICAL POC
9.8 Apr 03

Gibbon through 26.0.00 allows /modules/School%20Admin/messengerSettings.php Server Side Template Injection leading to Re

CVE-2026-77136 CRITICAL POC
9.5 Aug 25

Server-side template injection in the TYPO3 'Powermail' extension lets an anonymous user submit Fluid template syntax th

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy