Objavili zraniteľnosť v RubyGems.org, ktorá umožňovala nahradiť balíčky

To nedávno prelomili správy Bola identifikovaná kritická zraniteľnosť úložisko balíkov rubygems.org (chyba zabezpečenia je už katalogizovaná pod CVE-2022-29176), ktorá povoliť bez riadneho povolenia, nahradiť balíky iných ľudí v úložisku vytrhnutím legitímneho balíka a nahratím iného súboru s rovnakým názvom a číslom verzie na jeho miesto.

Je to spomenuté zraniteľnosť je spôsobená chybou v obslužnom nástroji akcie "yank"., ktorý považuje časť názvu za pomlčkou za názov platformy, čo umožnilo iniciovať odstraňovanie externých balíkov, ktoré zodpovedajú časti názvu až po znak pomlčky.

Najmä v kóde ovládača operácie "trhnutie", hovor 'find_by!(full_name: "#{rubygem.name}-#{slug}")' bol použitý na vyhľadávanie balíkov, zatiaľ čo parameter "slug" bol odovzdaný vlastníkovi balíka, aby určil verziu, ktorá sa má odstrániť.

Vlastník balíka „rails-html“ mohol zadať „sanitizer-1.2.3“ namiesto verzie „1.2.3“, čo by spôsobilo, že sa operácia použije na „rails-html-sanitizer-1.2.3“ balík ″ od niekoho iného. »

Včera bolo zverejnené bezpečnostné odporúčanie pre Rubygems.org.

Upozornenie sa týkalo chyby, ktorá umožňovala používateľovi so zlými úmyslami ťažiť určité drahokamy a nahrávať rôzne súbory s rovnakým názvom, číslom verzie a inou platformou.

Pozrime sa hlbšie, aby sme zistili, čo sa pokazilo počas procesu extrakcie. Ako zámienku si predstavme scenár, že vytvoríme drahokam s názvom „rails-html“ s úmyslom získať neoprávnený prístup k veľmi používanému drahokamu „rails-html-sanitizer“.

Je to spomenuté musia byť splnené tri podmienky, aby ste mohli úspešne využiť túto chybu zabezpečenia:

  • Útok je možné vykonať len na pakety, ktoré majú v názve znak pomlčky.
  • Útočník by mal byť schopný umiestniť balíček drahokamov s časťou mena až po znak pomlčky. Napríklad, ak je útok namierený proti balíku „rails-html-sanitizer“, útočník musí umiestniť svoj vlastný balík „rails-html“ do úložiska.
  • Napadnutý balík musel byť vytvorený za posledných 30 dní alebo nebol aktualizovaný 100 dní.

Problém identifikoval bezpečnostný výskumník v rámci bounty programu HackerOne na nájdenie bezpečnostných problémov v známych open source projektoch.

Problém opravené na RubyGems.org 5. mája a podľa vývojárov, zatiaľ nezistili stopy vykorisťovania o zraniteľnosti v protokoloch za posledných 18 mesiacov. Zároveň bol zatiaľ vykonaný len povrchný audit a v budúcnosti sa plánuje jeho hlbší audit.

V súčasnosti sa domnievame, že táto zraniteľnosť nebola zneužitá.

RubyGems.org pošle e-mail všetkým vlastníkom drahokamov, keď je verzia drahokamu uvoľnená alebo odstránená. Od vlastníkov drahokamov sme nedostali žiadne e-maily s podporou, ktoré by poukazovali na to, že ich drahokam bol vyťažený bez povolenia.

Audit zmien drahokamov za posledných 18 mesiacov nenašiel žiadne príklady škodlivého použitia tejto zraniteľnosti. Ďalší audit akéhokoľvek možného použitia tohto exploitu nezistil žiadny prípad použitia tohto exploitu na prevzatie drahokamu bez autorizácie v histórii RubyGems. Nemôžeme zaručiť, že sa to nikdy nestalo, ale nezdá sa to pravdepodobné.

Na overenie vašich projektov sa odporúča analyzovať históriu operácií v súbore Gemfile.lock Škodlivá aktivita sa prejavuje v prítomnosti zmien s rovnakým názvom a verziou, alebo pri zmene platformy (napríklad keď balík xxx-1.2.3 1.2.3 sa aktualizuje na xxx-XNUMX-xxx).

Ako riešenie proti spoofingu skrytých balíkov v systémoch kontinuálnej integrácie alebo pri publikovaní projektov, Vývojárom sa odporúča používať Bundler s možnosťami „–zmrazené“ alebo „–nasadenie“ na potvrdenie závislostí.

konečne, ak máte záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.