#Segurança PrestaShop

CVE-2022-21686: execução remota de código no PrestaShop — templates Twig do back office legado

PrestaShop e CVE-2022-21686: explico a falha de execução remota de código em templates Twig do back office legado, o impacto real, as versões afetadas e os passos para corrigir sem complicar a tua loja.

CVE-2022-21686: execução remota de código no PrestaShop — templates Twig do back office legado

Se tens uma loja PrestaShop, há uma diferença entre estar a correr uma versão antiga e estar realmente exposto a uma falha concreta. A CVE-2022-21686 é um aviso de segurança relacionado com templates Twig do back office legado. Vou explicar o que foi identificado, que condições importam e como podes agir sem transformar uma atualização numa dor de cabeça.

O que aconteceu?

Dados não confiáveis podiam ser interpretados como código Twig no layout legado do back office, com potencial execução de código.

O problema foi identificado numa funcionalidade associada ao PrestaShop. A presença do ponto de entrada, os direitos necessários e a configuração podem alterar a exposição, por isso não convém tratar todas as instalações como iguais.

O detalhe técnico: como funciona a falha

Execução de código no servidor é diferente de executar JavaScript no browser: aqui o perigo é o processo PHP interpretar instruções que não deviam ser controladas por quem faz o pedido. Dependendo do caso, o caminho pode envolver upload executável, desserialização PHP, avaliação dinâmica, arquivos importados ou escrita de ficheiros de configuração.

Se ocorrer exploração, o código é normalmente executado com os direitos do utilizador do PHP-FPM ou Apache, não automaticamente como root. Mesmo assim, credenciais de configuração, ficheiros da loja, sessões e acesso à base de dados podem ficar expostos. Permissões restritivas e isolamento reduzem o impacto, mas não substituem a atualização.

Qual é o impacto real?

Em determinadas condições, o problema pode permitir acesso a ficheiros e dados da aplicação e execução de instruções com os privilégios do processo PHP. Isso não significa que a loja já tenha sido atacada, nem que todas as instalações possam ser exploradas da mesma forma. A gravidade depende da versão, da configuração, da autenticação necessária e dos direitos que o processo tem no servidor.

Também convém distinguir o alcance do núcleo da aplicação do alcance de um módulo de terceiros: uma falha numa extensão não transforma automaticamente todas as lojas PrestaShop em alvos vulneráveis.

Que versões estão afetadas?

  • Componente: templates Twig do back office legado
  • Versões abrangidas no registo: 1.7 desde 1.7.0.0 e anterior a 1.7.8.3
  • Versão de correção: 1.7.8.3
  • Divulgação do registo: 2022-01-26

Estes dados servem para fazer a primeira triagem. Se usas overrides, patches próprios ou versões personalizadas, verifica também o código realmente instalado. O número de versão apresentado no back office nem sempre conta a história toda.

Como corrigir a CVE-2022-21686?

  1. Inventaria a instalação. Regista a versão do PrestaShop, a versão do módulo quando aplicável e o ambiente PHP. Confirma se usas templates Twig do back office legado.
  2. Compara as versões. O registo refere como afetadas: 1.7 desde 1.7.0.0 e anterior a 1.7.8.3. Cruza este dado com o aviso do fabricante: condições especiais podem limitar o impacto.
  3. Cria um backup completo. Inclui ficheiros, base de dados e configurações, e ensaia a intervenção numa cópia de staging quando possível.
  4. Aplica a correção. A versão com correção indicada para este registo é 1.7.8.3. Se já estás num ramo mais recente, confirma no aviso oficial que a correção está incluída na tua release e que todos os módulos estão atualizados.
  5. Testa o que interessa. Valida login, carrinho, checkout, área de cliente, back office, emails e integrações usadas pela loja.
  6. Revê a exposição anterior. Não basta a correção funcionar; se a falha esteve acessível, olha para os logs e para alterações inesperadas.

Como saber se houve uma tentativa de exploração?

Analisa logs HTTP e PHP, alterações de ficheiros e processos invulgares no período de exposição. Compara o conteúdo de modules/, themes/ e diretórios de upload com uma cópia conhecida e íntegra. Não apagues ficheiros suspeitos antes de recolher evidência, se houver sinais de incidente.

Se utilizas Cloudflare ou outra WAF, considera-a uma camada de mitigação: não substitui a atualização do código vulnerável.

Ponto de atenção para developers

A verificação do código deve começar no componente indicado acima. Segue a origem dos dados recebidos por HTTP (Tools::getValue(), pedidos AJAX, uploads ou headers), identifica onde entram numa operação sensível e confirma se existem validações no servidor. Verifica também se os overrides e módulos próprios reintroduzem o mesmo padrão, mesmo depois de aplicar o patch oficial.

E se não quiser mexer sozinho na loja?

Uma intervenção segura não é apenas clicar em «atualizar». É perceber as dependências, preparar rollback, aplicar o patch adequado e garantir que o negócio continua a funcionar.

Queres que verifique e resolva esta vulnerabilidade na tua loja PrestaShop? Posso analisar as versões e os módulos, validar a exposição, aplicar as correções e testar as funcionalidades principais. Fala comigo e vemos a melhor forma de tratar disso, com calma e sem alarmismos.

Nota editorial: o conteúdo explica a informação pública disponível e não constitui prova de exploração da tua loja. Sempre que o aviso não confirma uma versão corrigida, essa limitação é assinalada expressamente.

// Fontes

  1. Registo CVE — CVE-2022-21686 cve.org ↗
  2. PrestaShield — base de vulnerabilidades PrestaShop prestashield.com ↗

// ++ — relacionados