Kerentanan dina panangan GitHub Actions, anu otomatis disauran nalika ngirimkeun pamenta tarik ka gudang pakét Nixpkgs, anu dianggo dina distribusi NixOS sareng ékosistem manajer pakét Nix, parantos diungkabkeun. Kerentanan ngamungkinkeun pamaké anu henteu sah pikeun nimba token anu masihan aksés maca sareng nyerat kana kode sumber sadaya bungkusan anu aya di Nixpkgs. Token ieu ngamungkinkeun modifikasi langsung tina pakét naon waé ngaliwatan gudang Git proyék, ngalangkungan prosés ulasan sareng persetujuan.
Kamampuhan pikeun kompromi Nixpkgs sareng nyuntik kode khusus kana pakét naon waé anu ditunjukkeun ku panaliti kaamanan Oktober kamari dina konferensi NixCon sareng langsung ditambal dina infrastruktur proyék. Sanajan kitu, rinci ngeunaan serangan ieu ngan diungkabkeun sataun saterusna. Masalahna aya hubunganana sareng panggunaan panangan GitHub Actions dina gudang Nixpkgs GitHub, anu kabeungkeut kana acara "pull_request_target" sareng ngalaksanakeun pamariksaan otomatis kana pamundut tarikan anyar.
Beda sareng acara "pull_request", pawang dina "pull_request_target" dipasihan aksés maca / nyerat kana lingkungan ngawangun, anu peryogi perawatan khusus nalika damel sareng data anu disalurkeun dina pamundut tarikan. Salah sahiji pawang kabeungkeut "pull_request_target" divalidasi "OWNERS" file disadiakeun dina pamundut tarikan ku ngawangun sarta nelepon utilitas codeowners-validator: léngkah: - kagunaan: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf kalawan: ref: refs/pull/$/running code: -Vlida ngajalankeun: hasil / bin / codeowners-validator env: OWNERS_FILE: pr / ci / OWNERS
Masalahna nya éta lamun file OWNERS formatna salah, utilitas codeowners-validator bakal kaluaran eusi string malformed kana standar, log diaksés masarakat awam. Serangan diwangun ku nempatkeun hiji link simbolis ngaranna OWNERS dina pamundut tarikan, nunjuk kana file ".Credentials", nu nyimpen Kapercayaan dina lingkungan ngawangun. Akibatna, ngolah file ieu nyababkeun kasalahan sareng baris kahiji, ngandung token aksés gudang, kaluaran kana log umum.

Salaku tambahan, kerentanan anu sanés kapanggih dina pawang anu mariksa aturan editorconfig. léngkah-léngkah: — nami: Kéngingkeun daptar file anu dirobih tina PR run: gh api […] | jq [ … ] > «$HOME/changed_files» — kagunaan: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 with: ref: refs/pull/$/merge — ngaran: Mariksa EditorConfig ngajalankeun: ucing «$ HOME/changed_files» | xargs -r editorconfig-checker
Dina hal ieu, masalahna nyaéta ngagunakeun utilitas "xargs" pikeun ngajalankeun editorconfig-checker sareng unggal file dina pamundut tarik. Kusabab nami file henteu disahkeun, panyerang tiasa ngalebetkeun file anu ngandung karakter khusus dina pamundut tarik, anu bakal diolah salaku argumen baris paréntah nalika ngajalankeun editorconfig-checker. Salaku conto, nalika nyiptakeun file "--help", editorconfig-checker bakal nunjukkeun petunjuk ngeunaan pilihan anu sayogi.
sumber: opennet.ru
