Në depozitën e paketave RubyGems.org është identifikuar një dobësi kritike (CVE-2022-29176) që lejon, pa pasur autoritetet e nevojshme, zëvendësimin e disa paketave të huaja në depozitë përmes iniciativës për të tërhequr (yank) një paketë legjitime dhe ngarkimin e një skedari tjetër me të njëjtin emër dhe numër versioni.
Për të shfrytëzuar me sukses këtë dobësi, duhen plotësuar tre kushte:
- Sulmi mund të kryhet vetëm ndaj paketave, ku emri përdor simbolin e lidhjes.
- Sulmuesi duhet të ketë mundësinë të ngarkojë një paketë gem me një pjesë emri para simbolit të lidhjes. Për shembull, nëse sulmi kryhet ndaj paketës «rails-html-sanitizer», sulmuesi duhet të ngarkojë në depozitë paketën e tij «rails-html».
- Paketa që sulmohet duhet të ketë qenë krijuar në 30 ditët e fundit ose të mos jetë përditësuar në 100 ditët e fundit.
DobĂ«sia shkaktohet nga njĂ« gabim nĂ« trajtuesin e veprimit «yank», i cili interpreton pjesĂ«n e emrit pas lidhjes si emrin e platformĂ«s, çka lejonte iniciimin e fshirjes sĂ« paketave tĂ« huaja qĂ« pĂ«rputhen nĂ« pjesĂ«n e emrit deri nĂ« simbolin e lidhjes. Konkretisht, nĂ« kodin e trajtuesit tĂ« operacionit «yank» pĂ«r tĂ« kĂ«rkuar paketat, ishte pĂ«rdorur thirrja âfind_by!(full_name: «#{rubygem.name}-#{slug}»)â, megjithatĂ«, parametri «slug» i ishte dhĂ«nĂ« nga pronari i paketĂ«s pĂ«r tĂ« pĂ«rcaktuar versionin qĂ« do tĂ« fshihej. Pronari i paketĂ«s «rails-html» nĂ« vend tĂ« versionit «1.2.3» mund tĂ« kishte specifikuar «sanitizer-1.2.3», qĂ« do tĂ« kishte çuar nĂ« kryerjen e operacionit ndaj paketĂ«s sĂ« huaj «rails-html-sanitizer-1.2.3».
Problemi u identifikua nga një hulumtues në fushën e sigurisë në kuadër të një programi të shpërblimit në HackerOne për gjetjen e problemeve të sigurisë në projekte të njohura me kod të hapur. Problemi u zgjidh në RubyGems.org më 5 Maj dhe sipas deklaratave të zhvilluesve, ata nuk kanë konstatuar ende prova të shfrytëzimit të dobësisë në log-et e tyre për 18 muajt e fundit. Megjithatë, deri tani është kryer vetëm një auditim sipërfaqësor dhe planifikohet të bëhet një kontroll më i thellë në të ardhmen.
PĂ«r tĂ« kontrolluar projekte tuaj, rekomandohet analiza e historisĂ« sĂ« operacioneve nĂ« skedarin Gemfile.lock, aktiviteti e keq Ă«shtĂ« i dukshĂ«m nĂ« praninĂ« e ndryshimeve me ruajtjen e emrit dhe versionit ose nĂ« ndryshimin e platformĂ«s (pĂ«r shembull, kur paketa gemname-1.2.3 Ă«shtĂ« pĂ«rditĂ«suar nĂ« gemname-1.2.3-java). Si njĂ« mĂ«nyrĂ« mbrojtjeje nga zĂ«vendĂ«simi i fshehtĂ« i paketave nĂ« sistemet e integrimit tĂ« vazhdueshĂ«m ose kur publikoni projekte, u rekomandohet zhvilluesve tĂ« pĂ«rdorin Bundler me opsionet «âfrozen» ose «âdeployment» pĂ«r tĂ« shĂ«nuar varĂ«sitĂ«.
Burimi: opennet.ru
