verbb/formie is vulnerable to Server-Side Template Injection (SSTI)
88
High Risk
Formie's anti-template-injection guard for populated field values uses a single-pass str_replace that does not re-scan its own output, so nested Twig delimiters such as {{{{7*7}}}} collapse back into an executable expression. A custom-default Hidden field then renders that value through Craft's unsandboxed view engine, so values supplied through the populateFormValues map (via the GraphQL templateHtml argument or the craft.formie.populateFormValues Twig variable) reach server-side Twig. Externally influenced input can therefore trigger information disclosure, application state changes, and potential remote code execution. The fix strips delimiters until stable and parses Hidden custom defaults through the sandboxed Variables engine.
You are affected if you are using a version that falls within the vulnerable range and you render a form containing a Hidden field whose default value is set to Custom while populating field values from untrusted GraphQL arguments or request-derived template variables.
verbb/formie is vulnerable to Server-Side Template Injection (SSTI) in versions 1.1.0 - 2.2.25 and 3.0.0 - 3.1.33.
Upgrade the verbb/formie library to the patch version.
Connect your repositories to instantly see whether vulnerable or malicious packages exist in your codebase.
Free. No credit card required.

I consent to receiving marketing communications based on Aikido’s Privacy Policy.
SOC 2Compliant
ISO 27001Compliant