Scripts Antigos em Python Criam Risco de Sequestro de Domínio em Diversos Pacotes PyPI
28 de Novembro de 2025

Pesquisadores em cibersegurança identificaram uma vulnerabilidade em pacotes legados do Python que pode abrir caminho para ataques à cadeia de suprimentos no Python Package Index (PyPI) por meio do sequestro de domínios.

A empresa de segurança em supply chain ReversingLabs descobriu a falha em arquivos bootstrap utilizados pela ferramenta de automação de build e deployment chamada zc.buildout.

Segundo o pesquisador Vladimir Pezo, esses scripts automatizam o download, a compilação e a instalação das bibliotecas e ferramentas necessárias.

Ao executar o bootstrap, um script de instalação do pacote Distribute é baixado e rodado diretamente do domínio python-distribute[.]org — um endereço antigo que hoje está à venda por valores elevados e gera receita com anúncios.

Entre os pacotes do PyPI que carregam esse bootstrap vulnerável estão tornado, pypiserver, slapos.core, roman, xlutils e testfixtures.

O problema está no script antigo bootstrap.py que, junto com a ferramenta zc.buildout, inicializava o ambiente Buildout e permitia a instalação do utilitário Distribute, um fork temporário do projeto Setuptools.

O script baixa o arquivo distribute_setup.py do domínio python-distribute[.]org, que está disponível para venda desde 2014.

A ideia original era substituir o Setuptools pela ferramenta Distribute para gerenciar dependências e pacotes (eggs).

Contudo, o Distribute se tornou obsoleto em 2013, quando suas funcionalidades foram reintegradas ao Setuptools.

Mesmo assim, muitos pacotes continuam incluindo o script que tenta instalar o Distribute, especialmente quando os comandos -d ou --distribute são usados.

Como o domínio está livre para registro, essa situação expõe os usuários ao risco real de que invasores assumam o controle do endereço e distribuam códigos maliciosos durante a execução do bootstrap.

Isso pode levar ao roubo de dados sensíveis ou ao comprometimento do ambiente.

Apesar de alguns pacotes já terem removido o bootstrap vulnerável, o slapos.core ainda mantém o código inseguro, que também está presente na versão de desenvolvimento do Tornado.

É importante notar que o bootstrap não é executado automaticamente na instalação e foi escrito para Python 2, não rodando sem ajustes no Python 3 — mas sua simples presença representa uma superfície de ataque desnecessária, especialmente se um desenvolvedor executá-lo inadvertidamente.

Casos de sequestro de domínio não são apenas hipotéticos.

Em 2023, o pacote npm fsevents foi comprometido após invasores assumirem o controle de um recurso em nuvem não reclamado, injetando executáveis maliciosos em algumas versões do pacote ( CVE-2023-45311 , pontuação CVSS 9,8).

Pezo ressalta que a vulnerabilidade decorre do padrão inseguro de baixar e executar códigos de domínios fixos, comportamento típico de malwares do tipo downloader.

A ausência de uma descontinuação formal do módulo Distribute permitiu que scripts vulneráveis continuassem em circulação, expondo projetos a ataques.

A divulgação ocorre junto a outro alerta da HelixGuard, que detectou um pacote malicioso no PyPI chamado spellcheckers.

A princípio, ele se apresenta como uma ferramenta de correção ortográfica usando OpenAI Vision, mas contém código que conecta a um servidor externo para baixar uma segunda payload maliciosa, ativando um trojan de acesso remoto (RAT).

O pacote, publicado em 15 de novembro de 2025 pelo usuário leo636722, foi baixado 955 vezes e já foi removido do repositório.

Segundo a HelixGuard, o RAT permite executar comandos remotamente via exec(), garantindo controle total do computador da vítima assim que o backdoor é ativado pela instalação e execução do pacote.

Publicidade

Proteja sua empresa contra hackers através de um Pentest

Tenha acesso aos melhores hackers éticos do mercado através de um serviço personalizado, especializado e adaptado para o seu negócio. Qualidade, confiança e especialidade em segurança ofensiva de quem já protegeu centenas de empresas. Saiba mais...