FixVibe

// sondes / spotlight

Injection de templates côté serveur (SSTI)

Quand le moteur de template traite l'entrée utilisateur comme un template, le serveur la traite comme du code.

What it is

Server-Side Template Injection is sneakier than its cousins. SQLi takes you to the database, XSS takes you to the user's browser — SSTI usually takes you straight to a shell on the application server. It happens when developers reach for a template engine's flexibility (let users add a name to the email subject) and let user input cross the line from data to code.

How it happens

Server-side template injection appears when user-controlled text is evaluated by a server template engine instead of being rendered as plain data. In severe cases, that can expose sensitive data or reach server-side execution paths.

What an attacker gets

Most template engines, by design, can call into the host language. That means SSTI typically grades up to remote code execution: arbitrary shell commands, file reads, lateral movement into adjacent services, or just a reverse shell. Even on engines with sandboxes (Handlebars, Mustache without helpers) the attacker can usually exfiltrate context variables that include secrets and session data.

// what fixvibe reports

What FixVibe reports

Runs in active scans of a domain you have verified you own, on Hobby and above. Each finding shows the affected URL or host, its severity and fix steps you can paste into your AI coding tool.

How to fix it

Don't concatenate user input into templates. Pass user data as template variables, never as template source. If you must compose templates dynamically, use a sandboxed engine (Liquid is well-suited; Handlebars without runtime helpers is reasonable) and feed the user data as the data context only. As a second layer, run the rendering in a least-privileged process — separate Linux user, no shell, no network egress beyond what it needs. SSTI is one of the few classes where 'secure by construction' really applies — separate code from data and the entire family of bugs disappears.

// lance-le sur ta propre app

Continue de shipper pendant que FixVibe veille.

Verify you own the domain, then run active checks alongside the passive ones.

Sondes actives
138
tests dans cette catégorie
modules
58
vérifications sondes actives dédiées
verified domains
130+
active checks after verification
Verify your domain →

// checks récents · correctifs pratiques · shippe sereinement

Injection de templates côté serveur (SSTI): what it is and how to fix it · FixVibe