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

Nedavno je vijest objavila to Utvrđena je kritična ranjivost u spremište paketa rubygems.org (ranjivost je već katalogizirana pod CVE-2022-29176), što dopustiti bez odgovarajućeg ovlaštenja, zamijeniti tuđe pakete u repozitoriju tako da povučete legitimni paket i učitate drugu datoteku s istim imenom i brojem verzije umjesto nje.

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

Osobito u kodu kontrolera operacije "jank", poziv 'find_by!(puno_naziv: "#{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" mogao je navesti "sanitizer-1.2.3" umjesto verzije "1.2.3", š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 bug koji je dopuštao zlonamjernom korisniku da rudari određene dragulje i učitava različite datoteke s istim imenom, brojem verzije i različitom platformom.

Pogledajmo dublje da vidimo što je pošlo po zlu tijekom procesa ekstrakcije. Kao izgovor, zamislimo scenarij u kojem stvaramo dragulj pod nazivom "rails-html" s namjerom da dobijemo neovlašteni pristup široko korištenom dragulju "rails-html-sanitizer".

Spominje se da moraju biti ispunjena tri uvjeta, kako biste uspješno iskoristili ovu ranjivost:

  • Napad se može izvesti samo na pakete koji u svom nazivu imaju crticu.
  • Napadač bi trebao biti u mogućnosti staviti paket dragulja s dijelom imena sve do znaka 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 zadnjih 30 dana ili nije ažuriran 100 dana.

problem identificiran od strane istraživača sigurnosti kao dio HackerOne bounty programa za pronalaženje sigurnosnih problema u poznatim projektima otvorenog koda.

problem popravljeno na RubyGems.org 5. svibnja a prema programerima, još nisu identificirali tragove eksploatacije ranjivosti u zapisnicima za posljednjih 18 mjeseci. Pritom je do sada provedena 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 dragulja objavi ili ukloni. Nismo primili nikakvu e-poruku podrške od vlasnika dragulja koji ukazuju na to da je njihov dragulj iskopan bez ovlaštenja.

Revizija promjena dragulja u posljednjih 18 mjeseci nije pronašla primjere zlonamjerne upotrebe ove ranjivosti. Daljnja revizija za bilo kakvu moguću upotrebu ovog iskorištavanja nije pronašla niti jedan primjer korištenja ovog exploit-a za preuzimanje dragulja bez ovlaštenja u povijesti RubyGemsa. Ne možemo jamčiti da se to nikada nije dogodilo, ali ne čini se vjerojatnim.

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

Kao rješenje protiv lažiranja skrivenih paketa u sustavima kontinuirane integracije ili prilikom objavljivanja projekata, Programerima se preporučuje korištenje Bundlera s opcijama "-zamrznuto" ili "-razmještanje" za potvrdu ovisnosti.

Konačno, ako vas zanima više o tome, detalje možete provjeriti u sljedeći link.


Budite prvi koji će komentirati

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.