Bug Python de 15 anos pode afetar 350 mil repositórios de código aberto

Codon é um novo compilador Python de alto desempenho
python

Pesquisadores descobrem um bug de 15 anos do Python, que pode afetar 350.000 repositórios de código aberto. A descoberta foi feita por pesquisadores de segurança cibernética da Trellix, que descobriram que existe a possibilidade de que esse bug possa levar à execução do código.

Bug no Python pode levar a exploração de repositórios de código aberto

Este bug Python de 15 anos foi divulgado em 2007 e foi rastreado como CVE-2007-4559. Apesar disso, nenhum patch foi fornecido para mitigar o problema de segurança. Só foi mitigado por uma atualização da documentação que alertou os desenvolvedores sobre os riscos.

Vários verticais da indústria são representados pelos repositórios de código aberto, incluindo: Desenvolvimento de software; Inteligência artificial; Aprendizado de máquina; desenvolvimento web; meios de comunicação; Segurança e; Gerenciamento de TI.

O módulo tarfile é afetado por esta falha de segurança, que foi classificada como 6.8 pelo CVSS.

Falha do arquivo tarifário

Um arquivo tar é composto de vários arquivos agrupados com metadados e outras informações sobre os arquivos. Para desarquivar o arquivo tar no futuro, é necessário usar esses metadados. Um arquivo tar contém uma variedade de metadados contendo informações que podem variar do seguinte: Nome do arquivo; Tamanho do arquivo; Soma de verificação do arquivo; Informações do proprietário do arquivo.

Essas informações são representadas no módulo tarfile do Python por uma classe chamada TarInfo, que representa essas informações. Um arquivo tar gera essas informações para cada membro. 

Vários tipos diferentes de estruturas podem ser representados usando esses membros em um sistema de arquivos, incluindo: Diretórios; Links simbólicos e;arquivos.

Existe uma confiança explícita nas informações contidas no objeto TarInfo dentro do código. Isso é seguido pela junção do caminho que foi passado para a função de extração com o caminho atual.

bug-python-de-15-anos-pode-afetar-350-mil-repositorios-de-codigo-aberto

Exploração do arquivo tarifário

Essa vulnerabilidade pode ser explorada por um invasor se ele adicionar “..” com o separador de seu sistema operacional (“/” ou “\”) no nome do arquivo. 

Assim, eles podem escapar do diretório onde o arquivo deve ser extraído para aproveitar essa vulnerabilidade. O módulo tarfile em Python nos permite fazer exatamente isso: –

Um filtro pode ser adicionado ao módulo tarfile para manipular os metadados de um arquivo antes de ser incluído no arquivo. Usando apenas seis linhas de código, os invasores podem criar suas explorações.

Um pesquisador da Trellix redescobriu o CVE-2007-4559 no início deste ano durante a investigação de uma vulnerabilidade de segurança diferente. Nesse caso, um invasor pode obter acesso ao sistema de arquivos por meio de uma vulnerabilidade de passagem de diretório causada pela falha das funções tarfile.extract() e tarfile.extractall() em limpar os arquivos de seus membros.

A Trellix afirmou que o número de repositórios vulneráveis em seu repositório excede 350.000 com base na taxa de vulnerabilidade de 61% que é verificada manualmente. Eles são frequentemente usados por ferramentas de aprendizado de máquina que facilitam o desenvolvimento de projetos mais rápidos e precisos para desenvolvedores.