Fix it in your stack

Tested fixes for CWE-1336 in Express, Flask, Spring Boot and ASP.NET Core: the vulnerable code, the fix, a plausible fix that still fails, and the regression tests.

Definition

MITRE’s description of CWE-1336: The product uses a template engine to insert or process externally-influenced input, but it does not neutralize or incorrectly neutralizes special elements or syntax that can be interpreted as template expressions or other code directives when processed by the engine.

Common consequences MITRE lists

  • Integrity: Execute Unauthorized Code or Commands

Why it matters

Most server-side template engines can reach the host language’s objects, so template text from a user usually means code execution on the server.

How to prevent it

  • Render templates that live in the codebase and pass input only as variables.
  • Where users author templates, use a logic-less engine or the engine’s sandbox with an allowlist policy, keep it patched, and render in an isolated worker without secrets.
  • Test with a harmless probe such as {{ 7 * 7 }} and assert it comes back as text.

Guides on this site

Practice

References

  1. CWE-1336 in the MITRE CWE list (version 4.20)
  2. OWASP Server-Side Template Injection Prevention Cheat Sheet

List data from MITRE; the name, definition and consequences are from MITRE’s CWE 4.20 catalogue. A guide is listed as the main subject when the weakness is what the guide is about, and as covering it when a dedicated section or worked example addresses it.

CWE content: Copyright © 2006–2026, The MITRE Corporation. CWE, CWSS, CWRAF, and the CWE logo are trademarks of The MITRE Corporation. CWE™ is free to use by any organization or individual for any research, development, and/or commercial purposes, per these CWE Terms of Use. Accordingly, The MITRE Corporation hereby grants you a non-exclusive, royalty-free license to use CWE for research, development, and commercial purposes. Any copy you make for such purposes is authorized on the condition that you reproduce MITRE’s copyright designation and this license in any such copy. CWE is a trademark of The MITRE Corporation. CWE Terms of Use.