Escapar para a execução
A partir de um objeto comum, o atacante caminha pelo grafo de objetos até algo que executa.
O salto de SSTI para execução de código vem do fato de que, numa linguagem comum, todo objeto dá acesso a outros objetos. Partindo de um valor inocente no contexto, o atacante caminha por atributos (.algo) e índices (['algo']) até chegar a um objeto que execute comandos ou leia arquivos.
Em Jinja2, a trilha famosa parte de uma string vazia e sobe pela hierarquia de classes até funções do sistema. A forma é sempre a mesma: um grafo de objetos em que uma referência leva a outra, e em algum ponto há algo perigoso alcançável.
No exemplo (motor de brinquedo), o contexto só expõe page, mas page.owner leva ao ambiente, .host ao objeto que executa, e .run('...') roda o comando (aqui, de mentira, só consultando uma tabela). O conserto é um motor em modo sandbox, que corta justamente essas referências.