Turvaauk RubyGems.org-is, mis vÔimaldab kellegi teise pakette asendada

RubyGems.org pakettirepositooriumis tuvastati kriitiline haavatavus (CVE-2022-29176), mis vĂ”imaldab ilma vajalike volitusteta asendada mĂ”ned teised paketid reposis, algatades kehtiva paketi „yank” eemaldamise ja laadides selle asemel ĂŒles teise faili sama nime ja versiooninumbriga.

Haavatavuse edukaks Àra kasutamiseks on vajalik kolm tingimust:

  • RĂŒnnakut saab teostada ainult pakettide puhul, mille nimes on miinusmĂ€rk.
  • RĂŒndajal peab olema vĂ”imalus paigutada gem-pakett, mille nimi sisaldab osa enne miinusmĂ€rki. NĂ€iteks, kui rĂŒnnak suunatakse paketile „rails-html-sanitizer”, peab rĂŒndaja paigutama reposse oma paketi „rails-html”.
  • RĂŒnnaku sihtpakett peab olema loodud viimase 30 pĂ€eva jooksul vĂ”i mitte olema uuendatud 100 pĂ€eva jooksul.

Haavatavus tuleneb veast „yank” toimingu töötlejas, mis tĂ”lgendas nime osa pĂ€rast miinusmĂ€rki platvormi nimeks, mis vĂ”imaldas algatada teiste pakettide eemaldamise, mille nimed kattusid miinusmĂ€rgini. EelkĂ”ige oli „yank” toimingu töötleja koodis pakettide leidmiseks kasutatud kutsungit ‘find_by!(full_name: „#{rubygem.name}-#{slug}”)’, samas kui parameetrit „slug” edastas paketi omanik eemaldatava versiooni mÀÀramiseks. Paketi „rails-html” omanik sai versiooni „1.2.3” asemel mĂ€rkida „sanitizer-1.2.3”, mis oleks viinud toimingu rakendamiseni teise paketi „rails-html-sanitizer-1.2.3” suhtes.

Probleem tuvastati turvauurija poolt HackerOne'i raames kÀimasoleva turvarikkumiste otsimise kaebuste preemia programmi raames tuntud avatud projektide jaoks. Probleem lahendati RubyGems.org-is 5. mail ja arendajate vÀitel ei ole nad seni avastanud jÀlgi haavatavuse Àrakasutamisest viimase 18 kuu logides. Siiski on lÀbi viidud ainult pindmine audit ja edasine pÔhjalikum kontroll on plaanis.

Oma projektide kontrollimiseks on soovitatav analĂŒĂŒsida Gemfile.lock failis tehtud toimingute ajalugu; pahatahtlik tegevus avaldub muudatuste tegemises, mis sĂ€ilitavad nime ja versiooni vĂ”i platvormi muutmise vormis (nĂ€iteks kui pakett gemname-1.2.3 on uuendatud gemname-1.2.3-java versiooniks). Kaitstes end varjatud pakettide asendamise eest pideva integreerimise sĂŒsteemides vĂ”i arendajate projektide avaldamisel, soovitatakse kasutada Bundlerit koos „—frozen” vĂ”i „—deployment” valikutega sĂ”ltuvuste fikseerimiseks.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster