Kwetsberens yn RubyGems.org dy't spoofing fan pakketten fan oare minsken mooglik makket

In krityske kwetsberens (CVE-2022-29176) is identifisearre yn it RubyGems.org pakket repository, wêrtroch, sûnder goede autoriteit, de pakketten fan oare minsken yn 'e repository kinne ferfange troch in yank fan in legitimearre pakket te begjinnen en op it plak te laden in oare triem mei deselde namme en ferzjenûmer.

Om de kwetsberens mei súkses te brûken, moatte trije betingsten foldien wurde:

  • De oanfal kin allinich útfierd wurde op pakketten dy't in koppelteken yn har namme hawwe.
  • In oanfaller moat in gem-pakket kinne pleatse mei in diel fan 'e namme foar it koppelteken. Bygelyks, as de oanfal op it pakket "rails-html-sanitizer" is, moat de oanfaller syn eigen "rails-html"-pakket yn 'e repository pleatse.
  • It oanfallen pakket moat makke wêze binnen de lêste 30 dagen of net bywurke foar 100 dagen.

De kwetsberens wurdt feroarsake troch in flater yn 'e "yank" aksjehanneler, dy't it diel fan 'e namme nei it koppelteken ynterpretearret as de namme fan it platfoarm, wat it mooglik makke om it wiskjen fan bûtenlânske pakketten te begjinnen dy't oerienkomme mei it diel fan 'e namme foar it koppelteken. Yn 't bysûnder, yn' e "yank" handlerkoade, waard de 'find_by!(folsleine_namme: "#{rubygem.name}-#{slug}")" brûkt om pakketten te finen, wylst de "slug" parameter waard trochjûn troch de pakket eigner te bepalen ferzje te fuortsmiten. De eigner fan it pakket "rails-html" koe "sanitizer-1.2.3" oantsjutte ynstee fan ferzje "1.2.3", wêrtroch't de operaasje tapast wurdt op in oar syn pakket "rails-html-sanitizer-1.2.3" ".

It probleem waard identifisearre troch in feiligensûndersiker as ûnderdiel fan HackerOne's bounty-programma foar it finen fan feiligensproblemen yn bekende iepenboarneprojekten. It probleem waard fêststeld yn RubyGems.org op maaie 5 en neffens de ûntwikkelders hawwe se noch gjin spoaren identifisearre fan eksploitaasje fan 'e kwetsberens yn' e logs oer de ôfrûne 18 moannen. Tagelyk is oant no ta allinnich mar in oerflakkige kontrôle dien en is der yn de takomst in mear yngeande kontrôle pland.

Om jo projekten te kontrolearjen, is it oan te rieden om de skiednis fan operaasjes te analysearjen yn it Gemfile.lock-bestân; kweade aktiviteit wurdt útdrukt yn 'e oanwêzigens fan feroaringen mei it behâld fan' e namme en ferzje of in feroaring fan platfoarm (bygelyks as de gemnamme -1.2.3-pakket wurdt bywurke nei gemname-1.2.3-java). As in oplossing om te beskermjen tsjin ferburgen pakketferfanging yn trochgeande yntegraasjesystemen of by it publisearjen fan projekten, wurde ûntwikkelders oanrikkemandearre om Bundler te brûken mei de "-frozen" of "-deployment" opsjes om ôfhinklikens te reparearjen.

Boarne: opennet.ru

Add a comment