CVE-2020-21967: upload inseguro de ficheiros no PrestaShop — upload na gestão do catálogo
PrestaShop e CVE-2020-21967: explico a falha de upload inseguro de ficheiros em upload na gestão do catálogo, o impacto real, as versões afetadas e os passos para corrigir sem complicar a tua loja.

// nesta página (8)
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-2020-21967 é um aviso de segurança relacionado com upload na gestão do catálogo. 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?
Foi reportada uma falha de upload na gestão do catálogo com possibilidade de execução remota, mas sem correção confirmada nesta referência.
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
A segurança de um upload não se decide apenas pela extensão apresentada no formulário. É preciso controlar o tipo real de ficheiro, o destino, as permissões, a possibilidade de execução pelo servidor e a forma como o anexo é servido posteriormente. Um ficheiro com conteúdo ativo pode ser perigoso mesmo quando aparenta ser uma imagem ou um documento.
Em alojamentos PHP, deves impedir que diretórios públicos de uploads executem scripts e evitar confiar em cabeçalhos Content-Type enviados pelo cliente. Se a falha estiver no módulo, atualizar a plataforma principal, por si só, pode não alterar o comportamento vulnerável.
Qual é o impacto real?
Em determinadas condições, o problema pode permitir armazenamento ou interpretação de ficheiros não autorizados, com impacto variável conforme o local e as permissões. 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: upload na gestão do catálogo
- Versões abrangidas no registo: 1.7.6.7
- Versão de correção: não confirmada
- Divulgação do registo: 2022-07-13
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-2020-21967?
- 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 upload na gestão do catálogo.
- Compara as versões. O registo refere como afetadas: 1.7.6.7. Cruza este dado com o aviso do fabricante: condições especiais podem limitar o impacto.
- 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.
- Aplica a correção. Não encontrei uma versão corrigida suficientemente bem documentada para a indicar com segurança neste registo. Não é prova de que não exista correção. Confirma com o fabricante, verifica o changelog do módulo e, se necessário, desativa temporariamente a funcionalidade afetada até teres um patch validado.
- Testa o que interessa. Valida login, carrinho, checkout, área de cliente, back office, emails e integrações usadas pela loja.
- 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
- Registo CVE — CVE-2020-21967 cve.org ↗
- PrestaShield — base de vulnerabilidades PrestaShop prestashield.com ↗