Lessico IT › Sicurezza › SSTI

SSTI

Sicurezza Svenska → Aggiornato: 2026-10-05

Server-Side Template Injection: l'input dell'utente finisce nel motore di template come codice invece che come dato, spesso con esecuzione remota di codice.

Esempio classico con Jinja2: render_template_string("Hello " + name). Inviando name = {{ 7*7 }} la risposta è «Hello 49». Da lì si arriva a {{ config.__class__.__init__.__globals__['os'].popen('id').read() }}, cioè una shell. Esistono equivalenti per Twig, Freemarker, Velocity, Smarty, Handlebars ed ERB.

Difesa: separare il template (file statico) dai dati (parametri) e non rendere mai stringhe dell'utente come template. La modalità sandbox del motore aiuta, ma in passato è stata aggirata più volte. PortSwigger offre una buona serie di laboratori sull'escalation.

← Torna al lessico