Ata zbuluan një dobësi në RubyGems.org që lejonte zëvendësimin e paketave

Kohët e fundit lajmi dha se Një cenueshmëri kritike u identifikua në depoja e paketës rubygems.org (vulnerabiliteti tashmë është i kataloguar nën CVE-2022-29176), i cili Kjo i lejon pa autorizimin e duhur, zëvendësoni paketat e njerëzve të tjerë në depo duke hequr një paketë legjitime dhe duke ngarkuar një skedar tjetër me të njëjtin emër dhe numër versioni në vend të tij.

Përmendet se dobësia është për shkak të një defekti në mbajtësin e veprimeve "yank"., i cili trajton pjesën e emrit pas vizës si emër të platformës, gjë që bëri të mundur fillimin e heqjes së paketave të jashtme që përputhen me pjesën e emrit deri në karakterin e vizës.

Në veçanti në kodin e kontrolluesit të operacionit "yank", thirrja 'find_by!(emri_plotë: "#{rubygem.name}-#{slug}")' u përdor për të kërkuar paketa, ndërsa parametri "slug" iu kalua pronarit të paketës për të përcaktuar versionin që duhej hequr.

Pronari i paketës "rails-html" mund të kishte specifikuar "sanitizer-1.2.3" në vend të versionit "1.2.3", gjë që do të bënte që operacioni të zbatohej në "rails-html-sanitizer-1.2.3" paketë ″ nga dikush tjetër. »

Një këshillë sigurie për Rubygems.org u publikua dje.

Këshillimi kishte të bënte me një gabim që lejonte një përdorues keqdashës të minonte disa gurë të çmuar dhe të ngarkonte skedarë të ndryshëm me të njëjtin emër, numër versioni dhe platformë të ndryshme.

Le të hedhim një vështrim më të thellë për të parë se çfarë shkoi keq gjatë procesit të nxjerrjes. Si pretekst, le të imagjinojmë një skenar ku krijojmë një gur të çmuar të quajtur "rails-html" me synimin për të fituar akses të paautorizuar në perlë të përdorur gjerësisht "rails-html-sanitizer".

Përmendet se duhet të plotësohen tre kushte, për të shfrytëzuar me sukses këtë dobësi:

  • Sulmi mund të kryhet vetëm në pako që kanë një karakter vizë në emrin e tyre.
  • Një sulmues duhet të jetë në gjendje të vendosë një paketë gurësh të çmuar me një pjesë të emrit deri në karakterin e vizës. Për shembull, nëse sulmi është kundër paketës "rails-html-sanitizer", sulmuesi duhet të vendosë paketën e tij "rails-html" në depo.
  • Paketa e sulmuar duhet të jetë krijuar në 30 ditët e fundit ose të mos përditësohet për 100 ditë.

Problemi u identifikua nga një studiues i sigurisë si pjesë e programit të shpërblimit HackerOne për të gjetur çështjet e sigurisë në projektet e njohura me burim të hapur.

Problemi fiksuar në RubyGems.org më 5 maj dhe sipas zhvilluesve, nuk kanë identifikuar ende gjurmët e shfrytëzimit të cenueshmërisë në regjistrat për 18 muajt e fundit. Në të njëjtën kohë, deri më tani është kryer vetëm një auditim sipërfaqësor dhe në të ardhmen është planifikuar një auditim më i thelluar.

Aktualisht, ne besojmë se kjo dobësi nuk është shfrytëzuar.

RubyGems.org u dërgon një email të gjithë pronarëve të gurëve të çmuar kur lëshohet ose hiqet një version i gurëve të çmuar. Ne nuk kemi marrë asnjë email mbështetës nga pronarët e gurëve të çmuar që tregojnë se perlë e tyre është nxjerrë pa autorizim.

Një auditim i ndryshimeve të gurëve të çmuar gjatë 18 muajve të fundit nuk gjeti shembuj të përdorimit me qëllim të keq të kësaj dobësie. Auditimi i mëtejshëm për çdo përdorim të mundshëm të këtij shfrytëzimi nuk gjeti asnjë rast të përdorimit të këtij shfrytëzimi për të marrë përsipër një gur të çmuar pa autorizim në historinë e RubyGems. Nuk mund të garantojmë se nuk ka ndodhur kurrë, por nuk duket e mundshme.

Për të verifikuar projektet tuaja, rekomandohet të analizoni historinë e operacioneve në skedarin Gemfile.lock Aktiviteti keqdashës shprehet në prani të ndryshimeve me të njëjtin emër dhe version, ose një ndryshim platforme (për shembull, kur një paketë xxx-1.2.3 1.2.3 është përditësuar në xxx-XNUMX-xxx).

Si zgjidhje kundër mashtrimit të paketave të fshehura në sistemet e integrimit të vazhdueshëm ose gjatë publikimit të projekteve, Zhvilluesve u rekomandohet të përdorin Bundler me opsionet “–frozen” ose “–deployment” për të konfirmuar varësitë.

Së fundi, nëse jeni të interesuar të dini më shumë për të, ju mund të kontrolloni detajet në lidhja vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.