Vulnerabilidade crítica em biblioteca PHP popular: o que os desenvolvedores precisam saber
A equipe de pesquisadores em cibersegurança da empresa SonarSource publicou um relatório sobre uma vulnerabilidade crítica descoberta em uma das bibliotecas PHP mais comuns para trabalhar com templates — Smarty. A vulnerabilidade, que recebeu o identificador CVE-2024-35227, permite que um invasor execute remotamente código arbitrário no servidor, o que pode levar à completa comprometimento da aplicação web.
Detalhes da vulnerabilidade
O problema está relacionado ao mecanismo de processamento de entrada do usuário na função fetch() da biblioteca Smarty. Com configuração insegura e ausência de filtragem de dados, um atacante pode enviar uma string maliciosa que será interpretada como código PHP. Na escala CVSS v3.1, a vulnerabilidade recebeu a pontuação máxima 9.8 (Crítica).
Principais características da vulnerabilidade:
- Vetor de ataque: remoto (Network)
- Complexidade de exploração: baixa (Low)
- Privilégios necessários: nenhum (None)
- Impacto na integridade: total (High)
Versões afetadas
A vulnerabilidade afeta todas as versões da biblioteca Smarty até 4.3.2 e 5.0.1. Os desenvolvedores da biblioteca já lançaram patches nas versões 4.3.3 e 5.0.2, respectivamente. Todos os usuários são fortemente aconselhados a atualizar a biblioteca imediatamente.
Como verificar a vulnerabilidade do seu projeto
Para garantir que seu projeto não está em risco, siga os seguintes passos:
- Verifique a versão do Smarty no arquivo
composer.jsonouvendor/smarty/smarty/Smarty.class.php. - Se a versão for inferior a 4.3.3 ou 5.0.2 (dependendo do branch), execute a atualização:
composer update smarty/smarty. - Verifique todos os locais no código onde a função
fetch()é usada com dados do usuário.
Recomendações de proteção
Além da atualização imediata da biblioteca, especialistas aconselham seguir as regras gerais de segurança:
- Sempre filtre e escape a entrada do usuário.
- Use o princípio do menor privilégio para operações de arquivo.
- Atualize regularmente todas as dependências do projeto.
- Aplique ferramentas de análise estática de código (SAST) para buscar vulnerabilidades.
História e contexto
Smarty é uma das bibliotecas PHP mais antigas para template, lançada em 2004. Ela é usada em CMS populares como Drupal (através de módulos), PrestaShop e muitos projetos personalizados. Segundo estimativas de analistas, a vulnerabilidade potencialmente afeta mais de 100.000 sites em todo o mundo.
Este não é o primeiro problema grave de segurança na biblioteca. Em 2021, foi descoberta a vulnerabilidade CVE-2021-29454, relacionada à injeção de templates. Os desenvolvedores do Smarty lançam correções rapidamente, mas o número de versões desatualizadas em produção permanece alto