Zraniteľnosť v obslužnom programe GitHub Actions umožnila napadnutie balíkov v Nixpkgs.

Boli odhalené zraniteľnosti v obslužných rutinách akcií GitHub, ktoré sa automaticky vyvolávajú pri odosielaní požiadaviek na zmeny (pull request) do repozitára balíkov Nixpkgs, ktorý sa používa v distribúcii NixOS a ekosystéme správcu balíkov Nix. Zraniteľnosť umožňovala neoprávnenému používateľovi extrahovať token, ktorý udeľoval prístup na čítanie a zápis k zdrojovému kódu všetkých balíkov hostovaných v Nixpkgs. Tento token umožňoval priamu úpravu ľubovoľného balíka prostredníctvom repozitára Git projektu, čím sa obišli procesy kontroly a schvaľovania.

Schopnosť kompromitovať Nixpkgs a vložiť vlastný kód do ľubovoľného balíka demonštrovali bezpečnostní výskumníci vlani v októbri na konferencii NixCon a bola okamžite opravená v infraštruktúre projektu. Podrobnosti o útoku však boli zverejnené až o rok neskôr. Problém súvisel s používaním obslužných programov GitHub Actions v repozitári Nixpkgs GitHub, ktoré sú viazané na udalosť „pull_request_target“ a vykonávajú automatické kontroly nových pull requestov.

Na rozdiel od udalosti „pull_request“ majú obslužné programy v „pull_request_target“ udelený prístup na čítanie/zápis do prostredia zostavovania, čo si vyžaduje osobitnú opatrnosť pri práci s údajmi odovzdanými v žiadosti o stiahnutie. Jeden z obslužných programov naviazaných na „pull_request_target“ overil súbor „OWNERS“ poskytnutý v žiadosti o stiahnutie zostavením a volaním utility codeowners-validator: kroky: — použitie: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf s: ref: refs/pull/$/merge cesta: pr — spustenie: nix-build base/ci -A codeownersValidator — spustenie: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

Problém bol v tom, že ak bol súbor OWNERS naformátovaný nesprávne, utilita codeowners-validator vypísala obsah chybne formátovaného reťazca do štandardného, ​​verejne prístupného protokolu. Útok spočíval v umiestnení symbolického odkazu s názvom OWNERS do požiadavky na stiahnutie údajov, ktorý ukazoval na súbor „.credentials“, ktorý ukladá poverenia v prostredí zostavovania. V dôsledku toho spracovanie tohto súboru viedlo k chybe a prvý riadok obsahujúci prístupový token k repozitáru bol vypísaný do verejného protokolu.

 Zraniteľnosť v obslužnom programe GitHub Actions umožnila napadnutie balíkov v Nixpkgs.

Okrem toho bola nájdená ďalšia zraniteľnosť v obslužnom programe, ktorý kontroluje pravidlá editorconfig. kroky: — názov: Získať zoznam zmenených súborov z PR spustiť: gh api […] | jq [ … ] > «$HOME/changed_files» — použitie: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 s: ref: refs/pull/$/merge — názov: Kontrola EditorConfig spustiť: cat «$HOME/changed_files» | xargs -r editorconfig-checker

V tomto prípade bol problém v použití utility „xargs“ na spustenie editorconfig-checker s každým súborom v žiadosti o stiahnutie. Keďže názvy súborov neboli overené, útočník mohol do žiadosti o stiahnutie zahrnúť súbor obsahujúci špeciálne znaky, ktoré by sa pri spustení editorconfig-checker spracovali ako argumenty príkazového riadka. Napríklad pri vytváraní súboru „--help“ by editorconfig-checker zobrazil nápovedu o dostupných možnostiach.

Zdroj: opennet.ru

Pridať komentár