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
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...