Осебпазирӣ дар RubyGems.org, ки имкон медиҳад қаллобии бастаҳои одамони дигар

Дар репозиторий бастаи RubyGems.org осебпазирии интиқодӣ (CVE-2022-29176) муайян карда шудааст, ки имкон медиҳад, ки бидуни салоҳияти дахлдор бастаҳои баъзе одамони дигарро дар репозитория тавассути оғоз кардани як бастаи қонунӣ ва боркунӣ ба ҷои он иваз кунад. файли дигар бо ҳамон ном ва рақами версия.

Барои бомуваффақият истифода бурдани осебпазирӣ, се шарт бояд риоя карда шавад:

  • Ҳамларо танҳо дар бастаҳое анҷом додан мумкин аст, ки дар номашон дефис гузошта шудааст.
  • Ҳамлагар бояд қодир бошад, ки бастаи ганҷро бо як қисми ном пеш аз аломати дефис ҷойгир кунад. Масалан, агар ҳамла ба бастаи "rails-html-sanitizer" бошад, ҳамлакунанда бояд бастаи "rails-html"-и худро дар анбор ҷойгир кунад.
  • Бастаи мавриди ҳамла қарордошта бояд дар давоми 30 рӯзи охир сохта шуда бошад ё дар давоми 100 рӯз навсозӣ нашуда бошад.

Ин осебпазирӣ дар натиҷаи иштибоҳ дар коркардкунандаи амали "yank" ба вуҷуд омадааст, ки қисми номро пас аз дефис ҳамчун номи платформа тафсир мекунад, ки имкон дод, ки ҳазфи бастаҳои хориҷиро, ки ба қисми ном мувофиқат мекунанд, оғоз кунад. пеш аз дефис. Аз ҷумла, дар коди коркарди "yank" занги "find_by!(name_full: "#{rubygem.name}-#{slug}")" барои дарёфти бастаҳо истифода мешуд, дар ҳоле ки параметри "slug" аз ҷониби соҳиби бастаҳо барои муайян кардани версияи хориҷшаванда. Соҳиби бастаи "rails-html" метавонад ба ҷои версияи "1.2.3" "sanitizer-1.2.3" -ро нишон диҳад, ки боиси татбиқи амалиёт ба бастаи ягон каси дигар "rails-html-sanitizer-1.2.3" мешавад. ".

Ин масъаларо як пажӯҳишгари амният ҳамчун як қисми барномаи мукофоти HackerOne барои дарёфти масъалаҳои амниятӣ дар лоиҳаҳои маълуми кушодаасос муайян кардааст. Мушкилот дар RubyGems.org рӯзи 5 май ҳал карда шуд ва ба гуфтаи таҳиягарон, онҳо дар тӯли 18 моҳи охир то ҳол ягон осори истифодаи осебпазириро дар гузоришҳо муайян накардаанд. Зимнан, то ҳол танҳо санҷиши рӯякӣ гузаронида шудааст ва дар оянда аудити амиқтар ба нақша гирифта шудааст.

Барои санҷидани лоиҳаҳои худ тавсия дода мешавад, ки таърихи амалҳоро дар файли Gemfile.lock таҳлил кунед; фаъолияти зараровар дар мавҷудияти тағирот бо нигоҳ доштани ном ва версия ё тағир додани платформа ифода карда мешавад (масалан, вақте ки gemname Бастаи -1.2.3 ба gemname-1.2.3-java нав карда мешавад). Ҳамчун як роҳи муваққатӣ барои муҳофизат аз ивазкунии бастаҳои пинҳонӣ дар системаҳои ҳамгироии пайваста ё ҳангоми нашри лоиҳаҳо, ба таҳиягарон тавсия дода мешавад, ки Bundler-ро бо имконоти "-frozen" ё "-deployment" барои ислоҳи вобастагӣ истифода баранд.

Манбаъ: opennet.ru

Илова Эзоҳ