Server-side template injection (SSTI)
Lower-trust data becomes executable template source at a server-side renderer.
Candidate CWE: CWE-1336
Test hypothesis#
At a source-confirmed local template sink, compare a literal marker with two arithmetic expressions producing distinct values. Read raw HTTP output before browser scripts execute and inspect the renderer call.
Evidence required#
Server-side evaluation violates the field’s text-only or sandbox contract. State the demonstrated capability; arithmetic supports expression evaluation and does not by itself prove OS execution.
Rule out false positives#
A supported template editor, client-side computation, one coincidental arithmetic result, or escaped expression text is insufficient.
Playbook and command references#
- Trace input into queries, commands, and templates — Prove interpretation at a specific sink using small paired experiments instead of payload spraying.
Find the associated command snippets
Referenced by these target playbooks#
Report checklist#
- Capture the affected version, configuration, identities, and object ownership.
- Preserve a valid baseline and a negative control.
- Reproduce the forbidden data access, action, or state change on controlled fixtures.
- Explain the intended security rule and why the observed behavior violates it.
- State prerequisites, uncertainty, cleanup, and the smallest demonstrated impact.
Conditional ATT&CK mapping#
- T1190 · Exploit Public-Facing Application — Only if: A demonstrated exploit of an Internet-facing service provides initial access to its host, system, or environment; explain the foothold and trust boundary. Not established by: Not a blanket label for every web/API weakness. A reflected parameter, scanner alert, or ordinary cross-account object read alone does not establish initial network/system access.