Vulnerabilidade crítica em biblioteca PHP popular: ameaça para milhares de sites

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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.json ou vendor/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

Recommended Libraries