RubyGems corrige bug de aquisição de pacotes não autorizados

0
311

[ad_1]

O repositório de pacotes RubyGems corrigiu uma vulnerabilidade crítica que permitiria a qualquer pessoa despublicar (“remover”) certos pacotes Ruby do repositório e republicar suas versões corrompidas ou maliciosas com os mesmos nomes de arquivos e números de versão.

Atribuída CVE-2022-29176, a falha crítica existia no RubyGems.org, que é o equivalente Ruby de npmjs.com, e hospeda mais de 170.000 pacotes Ruby (gems) com quase 100 bilhões de downloads ao longo dos anos.

Uma auditoria inicial do RubyGems revela que a vulnerabilidade não foi explorada nos últimos 18 meses para adulterar qualquer gem, mas uma auditoria mais profunda ainda está em andamento com resultados ainda a serem anunciados.

Hijack a Gem: Jogue, altere, reedite

Esta semana, o RubyGems anunciou que um bug crítico poderia ter permitido a qualquer usuário do RubyGems.org extrair versões de uma gem para a qual não estava autorizado e substituir o conteúdo da gem por arquivos mais novos.

Semelhante ao npm para pacotes NodeJS, RubyGems é um gerenciador de pacotes para a linguagem de programação Ruby e fornece um formato padronizado para distribuir artefatos Ruby finalizados (chamados “gems”). RubyGems.org Registry é o serviço de hospedagem de gems da comunidade que permite aos desenvolvedores publicar ou instalar gems instantaneamente e usar um conjunto de APIs especializadas.

Se um agente de ameaças tomar conhecimento de tal falha, ele poderá substituir silenciosamente o conteúdo de pacotes Ruby legítimos por malware, algo que ecoa as populares bibliotecas ua-parser-js, coa e rc do npm que foram sequestradas no ano passado. distribuir criptografia. mineradores e ladrões de senhas.

Embora os incidentes de sequestro de npm tenham se originado de comprometimentos de contas de mantenedores em vez de uma exploração de vulnerabilidades, eles causaram estragos, pois mais de mil projetos usaram bibliotecas como ‘ua-parser-js’, incluindo aquelas usadas pelo Facebook. , Microsoft, Amazon, Instagram, Google , Slack, Mozilla, Discord, Elastic, Intuit, Reddit e muitas outras empresas populares.

No caso de Ruby, a exploração massiva de tal exploração pode causar danos generalizados ao ecossistema Ruby e à segurança geral da cadeia de fornecimento de software.

Para explorar a vulnerabilidade, RubyGems explica, as seguintes condições devem ser atendidas:

  • A gema apontada tem um ou mais hífens em seu nome, por exemplo fornecedor de algo
  • A palavra que vem antes do primeiro hífen representa uma gem controlada pelo invasor que existe em RubyGems.org.
  • A gema que foi extraída ou alterada foi criada nos últimos 30 dias ou não foi atualizada em mais de 100 dias.

“Por exemplo, a gema provedor de algo poderia ter sido levado pelo dono da gema alguma coisaRubyGems explica.

“Organizações com muitas gemas não eram vulneráveis ​​desde que possuíssem a gema com o nome antes do hífen, por exemplo, se possuíssem a gema nome do corpo Ele protegeu todas as gemas com nomes como provedor de nome de agência”.

Essa vulnerabilidade, atribuída a CVE-2022-29176, espreitava no código RubyGems “yank action” e agora foi corrigida.

O desenvolvedor independente e pentester Greg Molnar explicou a falha com um pouco mais de profundidade técnica.

Neste momento, os mantenedores do RubyGems.org não acreditam que a vulnerabilidade tenha sido explorada, com base nos resultados de uma auditoria que analisou as alterações de gem feitas nos últimos 18 meses na plataforma.

Mas os proprietários do registro afirmam que mais auditorias estão em andamento e seus resultados aparecerão no comunicado de segurança divulgado para essa vulnerabilidade, que também contém algumas mitigações.

“RubyGems.org envía un correo electrónico a todos los propietarios de gemas cuando se publica o elimina una versión de gema. No hemos recibido ningún correo electrónico de soporte de los propietarios de gemas que indique que su gema ha sido eliminada sin autorización”, afirma o aviso.

Os desenvolvedores RubyGem podem auditar seu histórico de aplicativos para possíveis explorações passadas revisando seu gemfile.lock e procure gems cuja plataforma tenha mudado e os números de versão permaneçam inalterados.

Por exemplo, ver a gem gemname-3.1.2 renomeada para gemname-3.1.2-java é um possível sinal de que a vulnerabilidade foi explorada.

Do utilizador laursisask ele é creditado por relatar a vulnerabilidade por meio do HackerOne.

Atualizações:

8 de maio, 17h17 ET: Adicionadas informações sobre como verificar se sua gema foi extraída por meio dessa falha.

8 de maio 17:35 ET: Adicionado um link para a análise técnica de Molnar da falha.

[ad_2]