SÄrbarhet i RubyGems.org som möjliggör att byta ut andras paket

Det har upptÀckts en kritisk sÄrbarhet (CVE-2022-29176) i RubyGems.org:s paketförrÄd, som gör det möjligt att utan behörighet byta ut vissa andra paket i förrÄdet genom att initiera en utmÀrkelse (yank) av ett legitimt paket och ladda upp en annan fil med samma namn och versionsnummer istÀllet.

För att sÄrbarheten ska kunna utnyttjas krÀvs att tre villkor uppfylls:

  • Attacken kan endast riktas mot paket vars namn innehĂ„ller ett bindestreck.
  • Angriparen mĂ„ste kunna ladda upp ett gem-paket med en del av namnet innan bindestrecket. Om attacken riktas mot paketet "rails-html-sanitizer" mĂ„ste angriparen ladda upp sitt eget paket "rails-html" i förrĂ„det.
  • Paketet som attacken riktas mot mĂ„ste ha skapats inom de senaste 30 dagarna eller inte ha uppdaterats pĂ„ 100 dagar.

SĂ„rbarheten orsakas av ett fel i hanteraren för Ă„tgĂ€rden "yank", som tolkar delen av namnet efter bindestrecket som plattformens namn, vilket gjorde det möjligt att initiera borttagning av andra paket som matchar i delen av namnet före bindestrecket. Specifikt anvĂ€ndes i koden för yank-operationen anropet ‘find_by!(full_name: "#{rubygem.name}-#{slug}")’, dĂ€r parametern "slug" skickades av paketets Ă€gare för att bestĂ€mma vilken version som skulle tas bort. Ägaren av paketet "rails-html" kunde istĂ€llet för versionen "1.2.3" ange "sanitizer-1.2.3", vilket skulle leda till att Ă„tgĂ€rden fick effekt pĂ„ det utlĂ€ndska paketet "rails-html-sanitizer-1.2.3".

Problemet upptÀcktes av en sÀkerhetsforskare inom ramen för ett belöningsprogram pÄ HackerOne för att hitta sÀkerhetsproblem i kÀnda öppna projekt. Problemet ÄtgÀrdades i RubyGems.org den 5 maj, och enligt utvecklarna har de hittills inte funnit nÄgra bevis pÄ utnyttjande av sÄrbarheten i loggarna under de senaste 18 mÄnaderna. Hittills har enbart en ytlig granskning gjorts, och en mer grundlig inspektion planeras framöver.

För att kontrollera dina projekt rekommenderas det att analysera operationshistoriken i filen Gemfile.lock. Skadlig aktivitet framtrĂ€der i form av Ă€ndringar som bevarar namn och version eller byter plattform (till exempel nĂ€r paketet gemname-1.2.3 uppdateras till gemname-1.2.3-java). Som en omvĂ€g för att skydda mot dolda paketbyten i kontinuerliga integrationssystem eller vid publicering av projekt rekommenderas utvecklare att anvĂ€nda Bundler med alternativen "—frozen" eller "—deployment" för att faststĂ€lla beroenden.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster