Kerentanan pada pengendali GitHub Actions memungkinkan paket-paket di Nixpkgs disusupi.

Kerentanan pada pengendali GitHub Actions, yang secara otomatis dipanggil saat mengirimkan permintaan tarik ke repositori paket Nixpkgs, yang digunakan dalam distribusi NixOS dan ekosistem pengelola paket Nix, telah diungkapkan. Kerentanan ini memungkinkan pengguna yang tidak berwenang untuk mengekstrak token yang memberikan akses baca dan tulis ke kode sumber semua paket yang dihosting di Nixpkgs. Token ini memungkinkan modifikasi langsung paket apa pun melalui repositori Git proyek, melewati proses peninjauan dan persetujuan.

Kemampuan untuk mengkompromikan Nixpkgs dan menyuntikkan kode khusus ke dalam paket apa pun telah didemonstrasikan oleh para peneliti keamanan Oktober lalu di konferensi NixCon dan langsung ditambal dalam infrastruktur proyek tersebut. Namun, detail serangan tersebut baru diungkapkan setahun kemudian. Masalah tersebut terkait dengan penggunaan handler GitHub Actions di repositori GitHub Nixpkgs, yang terikat dengan event "pull_request_target" dan melakukan pemeriksaan otomatis terhadap permintaan tarik baru.

Berbeda dengan event "pull_request", handler dalam "pull_request_target" diberikan akses baca/tulis ke lingkungan build, yang memerlukan perhatian khusus saat menangani data yang diteruskan dalam pull request. Salah satu handler yang terikat ke "pull_request_target" memvalidasi berkas "OWNERS" yang disediakan dalam pull request dengan membangun dan memanggil utilitas codeowners-validator: langkah: — menggunakan: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf dengan: ref: refs/pull/$/merge jalur: pr — menjalankan: nix-build base/ci -A codeownersValidator — menjalankan: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

Masalahnya adalah jika berkas OWNERS diformat secara tidak benar, utilitas codeowners-validator akan menampilkan isi string yang salah format tersebut ke log standar yang dapat diakses publik. Serangan tersebut melibatkan penempatan tautan simbolis bernama OWNERS dalam permintaan tarik, yang mengarah ke berkas ".credentials", yang menyimpan kredensial di lingkungan build. Akibatnya, pemrosesan berkas ini menghasilkan kesalahan dan baris pertama, yang berisi token akses repositori, ditampilkan ke log publik.

 Kerentanan pada pengendali GitHub Actions memungkinkan paket-paket di Nixpkgs disusupi.

Selain itu, kerentanan lain ditemukan di handler yang memeriksa aturan editorconfig. langkah: — nama: Dapatkan daftar berkas yang diubah dari PR jalankan: gh api […] | jq [ … ] > «$HOME/changed_files» — menggunakan: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 dengan: ref: refs/pull/$/merge — nama: Memeriksa EditorConfig jalankan: cat «$HOME/changed_files» | xargs -r editorconfig-checker

Dalam kasus ini, masalahnya terletak pada penggunaan utilitas "xargs" untuk menjalankan editorconfig-checker dengan setiap berkas dalam permintaan tarik. Karena nama berkas tidak divalidasi, penyerang dapat menyertakan berkas yang berisi karakter khusus dalam permintaan tarik, yang akan diproses sebagai argumen baris perintah saat menjalankan editorconfig-checker. Misalnya, saat membuat berkas "--help", editorconfig-checker akan menampilkan petunjuk tentang opsi yang tersedia.

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster