He löysivät RubyGems.orgista haavoittuvuuden, joka mahdollisti pakettien korvaamisen

Äskettäin uutiset rikkoivat sen Kriittinen haavoittuvuus tunnistettiin vuonna pakettivarasto rubygems.org (haavoittuvuus on jo luetteloitu nimellä CVE-2022-29176), mikä mahdollistaa ilman asianmukaista lupaa, korvata muiden paketteja arkistoon repimällä laillinen paketti ja lataamalla tilalle toinen tiedosto, jolla on sama nimi ja versionumero.

Mainitaan se haavoittuvuus johtuu "Ynk"-toimintokäsittelijän virheestä, joka käsittelee yhdysviivan jälkeistä nimen osaa alustan nimenä, mikä mahdollisti ulkoisten pakettien poistamisen, jotka vastaavat nimen osaa yhdysviivamerkkiin asti.

Erityisesti toiminnon ohjainkoodissa "nykiminen", puhelu 'find_by!(full_name: "#{rubygem.name}-#{slug}")' käytettiin pakettien etsimiseen, kun taas "slug"-parametri välitettiin paketin omistajalle poistettavan version määrittämiseksi.

Paketin "rails-html" omistaja olisi voinut määrittää "sanitizer-1.2.3" version "1.2.3" sijasta, mikä saisi toiminnon koskemaan tiedostoa "rails-html-sanitizer-1.2.3" paketti ″ joltain toiselta. »

Rubygems.orgin tietoturvatiedote julkaistiin eilen.

Neuvonta koski virhettä, joka antoi pahantahtoisen käyttäjän louhia tiettyjä helmiä ja ladata erilaisia ​​tiedostoja samalla nimellä, versionumerolla ja eri alustalla.

Katsotaanpa tarkemmin, mikä meni pieleen poimintaprosessin aikana. Kuvitellaan tekosyynä skenaario, jossa luomme "rails-html"-nimisen jalokiven tarkoituksenaan saada luvaton pääsy laajalti käytettyyn "rails-html-sanitizer" -jalokiviin.

Mainitaan se kolmen ehdon on täytyttävä, jotta voit hyödyntää tätä haavoittuvuutta onnistuneesti:

  • Hyökkäys voidaan suorittaa vain paketeille, joiden nimessä on yhdysmerkki.
  • Hyökkääjän pitäisi pystyä sijoittamaan jalokivipakkaus, jossa on osa nimestä yhdysviivamerkkiin asti. Jos hyökkäys kohdistuu esimerkiksi "rails-html-sanitizer"-pakettia vastaan, hyökkääjän on asetettava oma "rails-html"-pakettinsa arkistoon.
  • Hyökkäyksen kohteena olevan paketin on oltava luotu viimeisten 30 päivän aikana tai sitä ei ole päivitetty 100 päivään.

Ongelma tietoturvatutkija tunnisti osana HackerOne-palkkioohjelmaa, jonka avulla voit löytää tietoturvaongelmia tunnetuista avoimen lähdekoodin projekteista.

Ongelma korjattu osoitteessa RubyGems.org 5. toukokuuta ja kehittäjien mukaan eivät ole vielä löytäneet merkkejä hyväksikäytöstä lokien haavoittuvuudesta viimeisten 18 kuukauden ajalta. Samanaikaisesti on toistaiseksi tehty vain pinnallinen tarkastus ja jatkossa on suunnitteilla syvempää tarkastusta.

Tällä hetkellä uskomme, että tätä haavoittuvuutta ei ole hyödynnetty.

RubyGems.org lähettää sähköpostin kaikille jalokiviomistajille, kun jalokiviversio julkaistaan ​​tai poistetaan. Emme ole saaneet jalokiviomistajilta tukisähköpostiviestejä, joissa kerrottaisiin, että heidän jalokivinsä on louhittu ilman lupaa.

Viimeisten 18 kuukauden aikana tehtyjen jalokivimuutosten tarkastuksessa ei löytynyt esimerkkejä tämän haavoittuvuuden haitallisesta käytöstä. Tämän hyväksikäytön mahdollisen käytön lisätarkastuksia ei löytynyt RubyGemsin historiassa yhtään tapausta, jossa tätä hyväksikäyttöä olisi käytetty helmen hallintaan ilman lupaa. Emme voi taata, että sitä ei koskaan tapahtunut, mutta se ei vaikuta todennäköiseltä.

Projektien tarkistamiseksi on suositeltavaa analysoida Gemfile.lock-tiedoston toimintahistoria Haitallinen toiminta ilmaistaan ​​muutoksilla, joilla on sama nimi ja versio, tai alustan vaihtaminen (esimerkiksi paketin xxx-1.2.3 1.2.3 on päivitetty muotoon xxx-XNUMX-xxx).

Ratkaisuna piilopakettien huijausta vastaan ​​jatkuvissa integraatiojärjestelmissä tai projekteja julkaistaessa, Kehittäjiä suositellaan käyttämään Bundleria vaihtoehdoilla “–jäädytetty” tai “–käyttöönotto” vahvistamaan riippuvuuksia.

lopuksi, jos olet kiinnostunut tietämään siitä lisää, voit tarkistaa yksityiskohdat seuraava linkki.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.