Otkrili su ranjivost na RubyGems.org koja je omogućila zamjenu paketa

Nedavno je vijest razbila to Utvrđena je kritična ranjivost u spremište paketa rubygems.org (ranjivost je već katalogizirana pod CVE-2022-29176), što dozvolite bez odgovarajućeg ovlašćenja, zamijeniti tuđe pakete u spremištu tako što ćete povući legitimni paket i postaviti drugi fajl sa istim imenom i brojem verzije na njegovo mesto.

To se spominje ranjivost je uzrokovana greškom u rukovaocu akcijama "yank"., koji dio imena nakon crtice tretira kao ime platforme, što je omogućilo pokretanje uklanjanja vanjskih paketa koji odgovaraju dijelu imena do znaka crtice.

Posebno u kodu kontrolera operacije "jank", poziv 'find_by!(puno_ime: "#{rubygem.name}-#{slug}")' je korišten za traženje paketa, dok je parametar "slug" proslijeđen vlasniku paketa da odredi verziju koju treba ukloniti.

Vlasnik paketa "rails-html" je mogao navesti "sanitizer-1.2.3" umjesto "1.2.3" verzije, što bi dovelo do primjene operacije na "rails-html-sanitizer-1.2.3" paket ″ od nekog drugog. »

Jučer je objavljen sigurnosni savjet za Rubygems.org.

Upozorenje se odnosilo na grešku koja je dozvoljavala zlonamjernom korisniku da iskopa određene dragulje i učita različite datoteke s istim imenom, brojem verzije i različitom platformom.

Pogledajmo dublje da vidimo šta je pošlo po zlu dok prolazimo kroz proces ekstrakcije. Kao izgovor, zamislimo scenario u kojem kreiramo dragulj pod nazivom "rails-html" s namjerom da dobijemo neovlašteni pristup široko korišćenom dragulju "rails-html-sanitizer".

To se spominje moraju biti ispunjena tri uslova, kako biste uspješno iskoristili ovu ranjivost:

  • Napad se može izvesti samo na pakete koji imaju crticu u svom imenu.
  • Napadač bi trebao biti u mogućnosti da stavi paket dragulja s dijelom imena sve do crtice. Na primjer, ako je napad na paket "rails-html-sanitizer", napadač mora staviti svoj vlastiti paket "rails-html" u spremište.
  • Napadnuti paket mora biti kreiran u posljednjih 30 dana ili nije ažuriran 100 dana.

problem identifikovan od strane istraživača bezbednosti kao dio HackerOne Bounty programa za pronalaženje sigurnosnih problema u poznatim projektima otvorenog koda.

problem popravljeno na RubyGems.org 5. maja a prema programerima, još nisu identifikovali tragove eksploatacije ranjivosti u evidenciji za proteklih 18 mjeseci. Istovremeno, do sada je izvršena samo površna revizija, au budućnosti se planira dublja revizija.

Trenutno vjerujemo da ova ranjivost nije iskorištena.

RubyGems.org šalje e-poštu svim vlasnicima dragulja kada se verzija gema objavi ili ukloni. Nismo primili nikakve e-poruke podrške od vlasnika dragulja koji ukazuju na to da je njihov dragulj iskopan bez ovlaštenja.

Revizija promjena dragulja u proteklih 18 mjeseci nije pronašla primjere zlonamjerne upotrebe ove ranjivosti. Daljnjom revizijom za bilo kakvu moguću upotrebu ovog eksploatiranja nije pronađen nijedan primjer da se ovaj eksploat koristi za preuzimanje dragulja bez ovlaštenja u istoriji RubyGemsa. Ne možemo garantovati da se to nikada nije dogodilo, ali ne izgleda vjerovatno.

Da biste provjerili svoje projekte, preporučuje se da analizirate historiju operacija u datoteci Gemfile.lock Zlonamjerna aktivnost se izražava u prisustvu promjena s istim imenom i verzijom, ili promjene platforme (na primjer, kada paket xxx-1.2.3 1.2.3 je ažuriran na xxx-XNUMX-xxx).

Kao rešenje protiv lažiranja skrivenih paketa u sistemima kontinuirane integracije ili prilikom objavljivanja projekata, Programerima se preporučuje da koriste Bundler sa opcijama "-zamrznuto" ili "-razmještanje" za potvrdu zavisnosti.

Na kraju, ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.