Vulnerabilidade Crítica no GitHub Expõe mais de 4.000 Repositórios ao Ataque de Repojacking
13 de Setembro de 2023

Uma nova vulnerabilidade divulgada no GitHub poderia ter exposto milhares de repositórios ao risco de ataques de reprojacking, mostram novas descobertas.

A falha "poderia permitir que um invasor explorasse uma condição de corrida nas operações de criação de repositório e renomeação de nome de usuário do GitHub", disse o pesquisador de segurança da Checkmarx, Elad Rapoport, em um relatório técnico compartilhado com o The Hacker News.

"A exploração bem-sucedida dessa vulnerabilidade afeta a comunidade de código aberto, permitindo o sequestro de mais de 4.000 pacotes de código em idiomas como Go, PHP e Swift, bem como ações do GitHub."

Após a divulgação responsável em 1º de março de 2023, a plataforma de hospedagem de código da Microsoft resolveu o problema em 1º de setembro de 2023.

Repojacking, abreviação de hijacking de repositório, é uma técnica onde um ator de ameaça consegue contornar um mecanismo de segurança chamado aposentadoria de namespace de repositório popular e, em última instância, controlar um repositório.

O que a medida de proteção faz é impedir que outros usuários criem um repositório com o mesmo nome de um repositório com mais de 100 clones no momento em que sua conta de usuário é renomeada. Em outras palavras, a combinação do nome do usuário e do repositório é considerada "aposentada."

Caso essa salvaguarda sejam burlade de maneira banal, ela poderia permitir que atores de ameaças criem novas contas com o mesmo nome de usuário e façam upload de repositórios maliciosos, potencialmente levando a ataques à cadeia de abastecimento de software.

O novo método delineado pela Checkmarx tira proveito de uma possível condição de corrida entre a criação de um repositório e a renomeação de um nome de usuário para realizar o reprojacking. Especificamente, isso envolve as seguintes etapas:

- A vítima possui o namespace "victim_user/repo"
- A vítima renomeia "victim_user" para "renamed_user"
- O repositório "victim_user/repo" agora está aposentado
- Um ator de ameaça com o nome de usuário "attacker_user" cria simultaneamente um repositório chamado "repo" e renomeia o nome de usuário "attacker_user" para "victim_user"

O último passo é realizado usando uma solicitação de API para a criação do repositório e uma interceptação de solicitação renomeada para a mudança do nome de usuário.

A evolução ocorre quase nove meses após o GitHub corrigir uma falha semelhante que poderia abrir a porta para ataques de reprojacking.

"A descoberta dessa nova vulnerabilidade nas operações de criação de repositório e renomeação de nome de usuário do GitHub destaca os riscos persistentes associados ao mecanismo de 'aposentadoria de namespace de repositório popular'", disse Rapoport.

Publicidade

Aprenda hacking e pentest na prática com esse curso gratuito

Passe por todas as principais fases de um pentest, utilizando cenários, domínios e técnicas reais utilizados no dia a dia de um hacker ético. Conte ainda com certificado e suporte, tudo 100% gratuito. Saiba mais...