Sebezhetőség a GitHub Actions kezelőjében, amely lehetővé tette a csomagok kompromittálását a Nixpkgs-ben.

Feltárták a GitHub Actions feldolgozók sebezhetőségeit, amelyek automatikusan aktiválódtak, amikor pull requesteket küldtek a Nixpkgs csomag-repozitóriumba, amelyet a NixOS disztribúcióban és a Nix csomagkezelőhöz kapcsolódó ökoszisztémában használnak. A sebezhetőség lehetővé tette, hogy egy külső fél kinyerje a tokent, amely írási és olvasási hozzáférést biztosított az összes Nixpkgs-re feltöltött csomag forráskódjához. Ez a token lehetővé tette a közvetlen változtatások végrehajtását bármely csomagon a projekt Git-repozitóriumán keresztül, megkerülve a módosítások ellenőrzési és felülvizsgálati folyamatait.

A Nixpkgs kompromittálhatóságát és bármely csomagba való kódbeillesztés lehetőségét biztonsági kutatók tavaly októberben a NixCon konferencián mutatták be, és ezt azonnal kijavították a projekt infrastruktúrájában. Mindazonáltal a támadás részletei csak egy év elteltével kerültek nyilvánosságra. A probléma a Nixpkgs GitHub-repozitóriumában a pull_request_target eseményhez kapcsolódó GitHub Actions feldolgozók használatával volt kapcsolatos, amelyek automatikus ellenőrzéseket végeztek új pull requestek érkezésekor.

A pull_request és a pull_request_target esemény között az a különbség, hogy a pull_request_target feldolgozóknak írási és olvasási hozzáférésük van az építési környezethez, ami különös figyelmet igényel az átadott adatok kezelésében a pull requestben. Az egyik pull_request_target-hez kapcsolt feldolgozó ellenőrizte a pull requestben megadott OWNERS fájlt, amelyhez a codeowners-validator eszközt használták: lépések: — használja: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf paraméterek: ref: refs/pull/$/merge path: pr — futtatás: nix-build base/ci -A codeownersValidator — futtatás: result/bin/codeowners-validator környezet: OWNERS_FILE: pr/ci/OWNERS

A probléma az volt, hogy ha az OWNERS fájl formázásában hiba lépett fel, a codeowners-validator eszköz a nem megfelelően formázott sor tartalmát a nyilvános logba írta ki. A támadás lényege az volt, hogy a pull requestben egy OWNERS nevű szimbolikus linket helyeztek el, amely a „.credentials” fájlra mutatott, amely az építési környezetben tárolja a hitelesítő adatokat. Ennek megfelelően a fájl feldolgozása hibát eredményezett, és az első sor kiírásra került a nyilvános logba, amely tartalmazta a repozitóriumhoz való hozzáférési tokent.

Sebezhetőség a GitHub Actions kezelőjében, amely lehetővé tette a csomagok kompromittálását a Nixpkgs-ben.

Ezen kívül egy másik sérülékenységet is találtak az editorconfig szabályainak ellenőrzését végző kezelőben. lépések: — név: Változtatott fájlok listájának lekérése a PR-ből futtatás: gh api […] | jq [ … ] > „$HOME/changed_files” — használ: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 használat: ref: refs/pull/$/merge — név: EditorConfig ellenőrzése futtatás: cat „$HOME/changed_files” | xargs -r editorconfig-checker

Ebben az esetben a probléma az volt, hogy az „xargs” segédeszközt használták az editorconfig-checker program futtatásához az egyes fájlokkal a pull-requestből. Mivel a fájlnevek érvényességét nem ellenőrizték, a támadó olyan fájlt helyezhetett el a pull-requestben, amely speciális karaktereket tartalmazott, és ezeket a editorconfig-checker eszköz az argumentumok részeként kezelte volna a parancssorban. Például, ha egy „—help” nevű fájlt hoztak létre, az editorconfig-checker az elérhető opciókról szóló súgót jelenítette volna meg.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster