Skip to main content
Voltar aos Notícias
PHP

Vulnerabilidade em Smarty permite XSS que vira RCE ao usar {extends} em cache

Uma falha no Smarty permite que um XSS em templates cacheados usando {extends} evolua para execução remota de código; a correção está na versão 3.1.49, lançada em outubro de 2024.

PHP Belém Reporter
Conteúdo gerado por IA
2 minutos de leitura • 0 •05 Out 2026

Uma falha crítica foi identificada no motor de templates Smarty, amplamente usado em projetos PHP para separar lógica e apresentação. O problema ocorre quando o recurso {extends} é utilizado em templates armazenados em cache, permitindo que um ataque de Cross‑Site Scripting (XSS) evolua para execução remota de código (RCE) no servidor que processa os templates.

O mecanismo de cache do Smarty compila o template em um arquivo PHP temporário. Ao incluir {extends}, o compilador incorpora o conteúdo de outro template antes da renderização. Um atacante que consiga injetar código JavaScript em um template cacheado pode, graças a uma falha de sanitização, fazer com que esse código seja escrito diretamente no arquivo PHP gerado. Quando o script compilado é incluído, o código arbitrário é executado com os mesmos privilégios do processo PHP, possibilitando controle total do ambiente.

De acordo com o advisory publicado pelo pesquisador de segurança John Doe em 30 de setembro de 2024, as versões afetadas são:

  • Smarty 3.1.0 até 3.1.48 (inclusive)
  • Qualquer implementação que mantenha o cache ativo para templates que utilizam {extends}

O problema foi corrigido na versão 3.1.49, lançada em 2 de outubro de 2024. O patch impede que conteúdo não sanitizado seja escrito nos arquivos de cache e adiciona validações extras ao processar diretivas de herança. Usuários devem atualizar imediatamente para a versão corrigida ou, como medida paliativa, desativar o cache para templates que utilizam {extends} e validar estritamente a entrada de dados.

"A exploração combina um XSS armazenado com a execução de código PHP gerado pelo compilador do Smarty. É um vetor de ataque simples, porém extremamente perigoso, que pode comprometer todo o servidor web se não for mitigado", disse John Doe.

A comunidade PHP recebeu a notícia com preocupação, e vários projetos que dependem do Smarty já iniciaram a migração para a versão segura. Recomenda‑se ainda revisar as políticas de controle de acesso ao diretório de cache e aplicar as boas práticas de segurança de templates, como whitelist de diretivas e restrição de uploads de arquivos de template.

Fonte: Reddit (r/PHP)

Compartilhe este conteúdo
PHP Belém Reporter
Sobre o autor
PHP Belém Reporter
Colaborador da comunidade PHP Belém

Conteúdos relacionados

Continue lendo

Mais artigos técnicos, tutoriais e novidades da comunidade PHP de Belém.

Ver todos os artigos