GitHub Actions ishlov beruvchisidagi zaiflik Nixpkgs paketlarini buzishga imkon berdi.

NixOS tarqatish va Nix paket menejeri ekotizimida foydalaniladigan Nixpkgs paketlar omboriga tortish so'rovlarini yuborishda avtomatik ravishda ishga tushiriladigan GitHub Actions ishlov beruvchilaridagi zaifliklar oshkor qilindi. Zaiflik ruxsatsiz foydalanuvchiga Nixpkgs-da joylashtirilgan barcha paketlarning manba kodiga o‘qish va yozish huquqini beruvchi tokenni chiqarish imkonini berdi. Ushbu token ko'rib chiqish va tasdiqlash jarayonlarini chetlab o'tib, loyihaning Git ombori orqali har qanday paketni to'g'ridan-to'g'ri o'zgartirishga imkon berdi.

Nixpkgs-ni buzish va har qanday paketga maxsus kodni kiritish qobiliyati o'tgan oktyabr oyida NixCon konferentsiyasida xavfsizlik bo'yicha tadqiqotchilar tomonidan namoyish etilgan va darhol loyiha infratuzilmasida yamalgan edi. Biroq, hujum tafsilotlari faqat bir yildan keyin oshkor qilingan. Muammo Nixpkgs GitHub omborida "pull_request_target" hodisasiga bog'langan va yangi tortish so'rovlari bo'yicha avtomatlashtirilgan tekshiruvlarni amalga oshiradigan GitHub Actions ishlov beruvchilaridan foydalanish bilan bog'liq edi.

"pull_request" hodisasidan farqli o'laroq, "pull_request_target" da ishlov beruvchilarga qurish muhitiga o'qish/yozish ruxsati beriladi, bu esa tortish so'rovida uzatilgan ma'lumotlar bilan ishlashda alohida e'tibor talab qiladi. "pull_request_target" ga bog'langan ishlovchilardan biri kod egalari-validator yordam dasturini yaratish va chaqirish orqali tortishish so'rovida taqdim etilgan "OWNERS" faylini tasdiqladi: qadamlar: — foydalanadi: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf: ref: refs/-pull:x: refs/-pull:x/ base/ci -A codeownersValidator - ishga tushirish: natija/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

Muammo shundaki, agar OWNERS fayli noto'g'ri formatlangan bo'lsa, codeowners-validator yordam dasturi noto'g'ri tuzilgan satr tarkibini standart, hamma uchun ochiq jurnalga chiqaradi. Hujum, “.credentials” fayliga ishora qiluvchi, “.credentials” fayliga ishora qiluvchi, “OWNERS” nomli ramziy havolani tortib olish so‘roviga joylashtirishdan iborat edi. Natijada, ushbu faylni qayta ishlash xatolikka olib keldi va omborga kirish tokenini o'z ichiga olgan birinchi qator umumiy jurnalga chiqarildi.

 GitHub Actions ishlov beruvchisidagi zaiflik Nixpkgs paketlarini buzishga imkon berdi.

Bundan tashqari, editorconfig qoidalarini tekshiradigan ishlov beruvchida yana bir zaiflik topildi. qadamlar: — nomi: PR ishga tushirishdan oʻzgartirilgan fayllar roʻyxatini oling: gh api […] | jq [… ] > «$HOME/changed_files» — foydalanadi: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 bilan: ref: refs/pull/$/merge — nomi: EditorConfig ishga tushirilishi tekshirilmoqda: cat «_HOME» oʻzgartirilgan | xargs -r editorconfig-tekshiruvchi

Bunday holda, muammo "xargs" yordam dasturidan tortib olish so'rovidagi har bir fayl bilan editorconfig-checker-ni ishga tushirishda edi. Fayl nomlari tasdiqlanmaganligi sababli, tajovuzkor maxsus belgilarni o'z ichiga olgan faylni tortib olish so'roviga kiritishi mumkin, ular editorconfig-checker ishga tushirilganda buyruq qatori argumentlari sifatida qayta ishlanadi. Misol uchun, "--help" faylini yaratishda, editorconfig-checker mavjud variantlar haqida maslahat beradi.

Manba: opennet.ru

a Izoh qo'shish