GitHub Actions -käsittelijän haavoittuvuus mahdollisti Nixpkgs-pakettien vaarantumisen.

GitHub Actions -käsittelijöissä, jotka aktivoituvat automaattisesti lähetettäessä pull-pyyntöjä NixOS-jakelussa ja Nix-paketinhallintaekosysteemissä käytettävään Nixpkgs-pakettiarkistoon, on paljastunut haavoittuvuuksia. Haavoittuvuus mahdollisti luvattoman käyttäjän purkaa tokenin, joka antoi luku- ja kirjoitusoikeuden kaikkien Nixpkgs-arkistoon isännöityjen pakettien lähdekoodiin. Tämä token mahdollisti minkä tahansa paketin suoran muokkaamisen projektin Git-arkiston kautta ohittaen tarkistus- ja hyväksymisprosessit.

Kyky murtautua Nixpkgs-ohjelmaan ja lisätä mukautettua koodia mihin tahansa pakettiin osoitettiin tietoturvatutkijan toimesta viime lokakuussa NixCon-konferenssissa, ja tämä paikkaus asennettiin välittömästi projektin infrastruktuuriin. Hyökkäyksen yksityiskohdat paljastettiin kuitenkin vasta vuotta myöhemmin. Ongelma liittyi GitHub Actions -käsittelijöiden käyttöön Nixpkgs GitHub -arkistossa, jotka on sidottu "pull_request_target"-tapahtumaan ja suorittavat automaattisia tarkistuksia uusille pull-pyynnöille.

Toisin kuin "pull_request"-tapahtumassa, "pull_request_target"-tapahtuman käsittelijöille myönnetään luku-/kirjoitusoikeudet koontiympäristöön, mikä vaatii erityistä huolellisuutta pull-pyynnössä välitettyjen tietojen kanssa työskenneltäessä. Yksi "pull_request_target"-tapahtumaan sidotuista käsittelijöistä vahvisti pull-pyynnössä annetun "OWNERS"-tiedoston rakentamalla ja kutsumalla codeowners-validator-apuohjelmaa: vaiheet: — käyttää: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf with: ref: refs/pull/$/merge path: pr — run: nix-build base/ci -A codeownersValidator — run: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

Ongelmana oli, että jos OWNERS-tiedosto oli muotoiltu väärin, codeowners-validator-apuohjelma tulosti väärin muodostetun merkkijonon sisällön tavalliseen, julkisesti saatavilla olevaan lokitiedostoon. Hyökkäys koostui OWNERS-nimisen symbolisen linkin sijoittamisesta pull-pyyntöön, joka osoitti ".credentials"-tiedostoon, joka tallentaa tunnistetiedot koontiympäristössä. Tämän seurauksena tiedoston käsittely aiheutti virheen ja ensimmäinen rivi, joka sisälsi repositorion käyttöoikeustunnuksen, tulostettiin julkiseen lokitiedostoon.

 GitHub Actions -käsittelijän haavoittuvuus mahdollisti Nixpkgs-pakettien vaarantumisen.

Lisäksi editorconfig-sääntöjä tarkistavasta käsittelijästä löydettiin toinen haavoittuvuus. vaiheet: — name: Hae muuttuneiden tiedostojen luettelo PR:stä run: gh api […] | jq [ … ] > «$HOME/changed_files» — uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 with: ref: refs/pull/$/merge — name: EditorConfig-sääntöjen tarkistus run: cat «$HOME/changed_files» | xargs -r editorconfig-checker

Tässä tapauksessa ongelmana oli "xargs"-apuohjelman käyttö editorconfig-checker-komennon suorittamiseen jokaisen pull-pyynnön tiedoston kanssa. Koska tiedostonimiä ei vahvistettu, hyökkääjä saattoi sisällyttää pull-pyyntöön erikoismerkkejä sisältävän tiedoston, joka käsiteltiin komentoriviargumentteina editorconfig-checker-komentoa suoritettaessa. Esimerkiksi luotaessa "--help"-tiedostoa editorconfig-checker näytti vihjeen käytettävissä olevista vaihtoehdoista.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster