Pelo menos duas versões da biblioteca Ultralytics AI, utilizada em Python no desenvolvimento de soluções customizadas de machine learning, foram comprometidas com um código que baixa um cryptominer na máquina do desenvolvedor. Segundo relatório do ReversingLabs, estavam comprometidas as versões 8.3.41 e 8.3.42. A versão limpa é agora a 8.3.43. A Ultralytics é uma biblioteca com quase 60 milhões de downloads no PyPI (Python Package Index). A ReversingLabs informou que a versão maliciosa 8.3.41, com código para baixar o XMRig, foi publicada em 4 de dezembro tanto no PyPi quanto no GitHub. O comprometimento do ambiente de build do projeto foi obtido explorando uma injeção de script GitHub Actions conhecida e relatada anteriormente.
Leia também
Hackers norte-coreanos lançam campanha VMConnect PyPI
Crescem ameaças a sociedade civil de grupos ligados a governos
A ReversingLabs informou no relatório que o conteúdo no repositório GitHub não correspondia ao conteúdo do pacote PyPI correspondente: atores maliciosos haviam conseguido comprometer o ambiente de build e injetaram o código malicioso após a parte de revisão de código do processo ter sido concluída.
O que piorou o incidente do ultralytics foi que os mantenedores do projeto não localizaram corretamente o comprometimento e, como resultado, em 5 de dezembro, a versão 8.3.42, que deveria resolver o incidente e servir como uma versão segura para atualizar a versão maliciosa, acabou contendo o mesmo código malicioso. Finalmente, uma versão limpa, 8.3.43, foi publicada no mesmo dia, resolvendo esse ataque à cadeia de suprimentos.
Esse comprometimento da cadeia teve o potencial de impactar um grande número de usuários, já que o ultralytics (veja a listagem da Comunidade RL Spectra Assure ) é um projeto do GitHub com mais de 30.000 estrelas — e o pacote PyPI mostra cerca de 60 milhões de downloads.