Në depozitën e paketave RubyGems.org është zbuluar një dobësi kritike (CVE-2022-29176), e cila bën të mundur, pa autorizimin e duhur, zëvendësimin e disa paketave të huaja në depozitë duke nisur tërheqjen (yank) e një pakete legjitime dhe duke ngarkuar në vend të saj një skedar tjetër me të njëjtin emër dhe të njëjtin numër versioni.
Për shfrytëzimin me sukses të dobësisë duhet të plotësohen tre kushte:
- Sulmi mund të kryhet vetëm ndaj paketave, emri i të cilave përmban shenjën e vizës lidhëse.
- Sulmuesi duhet të ketë mundësi të publikojë një paketë gem me pjesën e emrit para shenjës së vizës lidhëse. Për shembull, nëse sulmi kryhet ndaj paketës «rails-html-sanitizer», sulmuesi duhet të publikojë në depozitë paketën e vet «rails-html».
- Paketa ndaj së cilës kryhet sulmi duhet të jetë krijuar gjatë 30 ditëve të fundit ose të mos jetë përditësuar për 100 ditë.
DobĂ«sia shkaktohet nga njĂ« gabim nĂ« pĂ«rpunuesin e veprimit «yank», i cili e interpreton pjesĂ«n e emrit pas vizĂ«s lidhĂ«se si emrin e platformĂ«s, gjĂ« qĂ« mundĂ«sonte nisjen e fshirjes sĂ« paketave tĂ« huaja qĂ« pĂ«rputheshin nĂ« pjesĂ«n e emrit para vizĂ«s lidhĂ«se. Konkretisht, nĂ« kodin e pĂ«rpunuesit tĂ« operacionit «yank» pĂ«r kĂ«rkimin e paketave pĂ«rdorej thirrja âfind_by!(full_name: «#{rubygem.name}-#{slug}»)â, ndĂ«rsa parametri «slug» dĂ«rgohej nga pronari i paketĂ«s pĂ«r tĂ« pĂ«rcaktuar versionin qĂ« do tĂ« hiqej. Pronari i paketĂ«s «rails-html» nĂ« vend tĂ« versionit «1.2.3» mund tĂ« tregonte «sanitizer-1.2.3», çka do tĂ« sillte zbatimin e operacionit ndaj paketĂ«s sĂ« huaj «rails-html-sanitizer-1.2.3».
Problemi u zbulua nga një studiues i sigurisë në kuadër të programit aktiv të shpërblimeve në HackerOne për gjetjen e problemeve të sigurisë në projekte të njohura open source. Problemi u korrigjua në RubyGems.org më 5 maj dhe, sipas deklaratës së zhvilluesve, deri tani nuk janë gjetur gjurmë të shfrytëzimit të kësaj dobësie në log-et e 18 muajve të fundit. Megjithatë, deri më tani është kryer vetëm një auditim sipërfaqësor dhe në vijim planifikohet një verifikim më i thelluar.
PĂ«r tĂ« kontrolluar projektet tuaja, rekomandohet tĂ« analizohet historia e veprimeve nĂ« skedarin Gemfile.lock; aktiviteti keqdashĂ«s shfaqet nga prania e ndryshimeve me ruajtjen e tĂ« njĂ«jtit emĂ«r dhe version ose nga ndryshimi i platformĂ«s (pĂ«r shembull, kur paketa gemname-1.2.3 pĂ«rditĂ«sohet nĂ« gemname-1.2.3-java). Si masĂ« anashkaluese mbrojtĂ«se kundĂ«r zĂ«vendĂ«simit tĂ« fshehtĂ« tĂ« paketave 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Ă« fiksuar varĂ«sitĂ«.
Burimi: opennet.ru
