Google mengungkapkan kelemahan keamanan di GitHub

Project Zero merilis detail pelanggaran keamanan serius di GitHub dan mereka melaporkannya kesalahan mempengaruhi perintah alur kerja tindakan dari GitHub dan digambarkan sebagai tingkat keparahan tinggi. (Bug ini ditemukan pada bulan Juli, tetapi berdasarkan periode pengungkapan standar 90 hari, detailnya baru dirilis sekarang.)

Cacat ini menjadi salah satu dari sedikit kerentanan yang tidak diperbaiki benar sebelum jangka waktu 90 hari standar yang diberikan oleh Google Project Zero kedaluwarsa.

Menurut Felix Wilhelm (yang menemukannya), anggota tim Project Zero, kekurangan tersebut memengaruhi fitur Tindakan GitHub, alat untuk mengotomatiskan pekerjaan pengembang. Ini karena perintah alur kerja Actions "rentan terhadap serangan injeksi":

"Actions Github mendukung fitur yang disebut perintah alur kerja sebagai saluran komunikasi antara Action broker dan tindakan yang dijalankan. Perintah alur kerja diimplementasikan di sekitar / src / Runner.Worker / ActionCommandManager.cs, dan bekerja dengan mengurai STDOUT dari semua tindakan yang dilakukan dengan mencari salah satu dari dua penanda perintah.

Sebutkan itu masalah besar dengan fitur ini adalah sangat rentan terhadap serangan injeksi. Karena proses eksekusi memindai setiap baris yang dicetak di STDOUT untuk perintah alur kerja, setiap tindakan GitHub yang berisi konten tidak tepercaya sebagai bagian dari eksekusinya rentan.

Dalam kebanyakan kasus, kemampuan untuk menyetel variabel lingkungan arbitrer menghasilkan eksekusi kode jarak jauh segera setelah alur kerja lain berjalan. Saya telah menghabiskan beberapa waktu melihat repositori GitHub yang populer dan hampir semua proyek yang menggunakan tindakan GitHub yang sedikit rumit rentan terhadap bug semacam ini.

Nanti memberikan beberapa contoh bagaimana bug dapat dieksploitasi dan juga menyarankan solusi:

“Saya benar-benar tidak yakin apa cara terbaik untuk memperbaikinya. Saya pikir cara perintah alur kerja diimplementasikan pada dasarnya tidak aman. Mendepresiasi sintaks perintah v1 dan memperkuat set-env dengan daftar yang diizinkan mungkin akan bekerja melawan vektor RCE langsung.

“Namun, bahkan kemampuan untuk menimpa variabel lingkungan 'normal' yang digunakan pada langkah selanjutnya mungkin cukup untuk mengeksploitasi tindakan yang lebih kompleks. Saya juga belum menganalisis dampak keamanan dari kontrol lain di ruang kerja.

Di sisi lain, sebutkan itu solusi jangka panjang yang bagus itu akan memindahkan perintah alur kerja ke saluran terpisah (misalnya deskriptor file baru) untuk menghindari penguraian oleh STDOUT, tetapi ini akan merusak banyak kode tindakan yang ada.

Sedangkan untuk GitHub, pengembangnya memposting peringatan pada 1 Oktober dan menghentikan perintah yang rentan, tetapi berpendapat bahwa apa yang ditemukan Wilhelm sebenarnya adalah "kerentanan keamanan sedang." GitHub menetapkan pengenal bug CVE-2020-15228:

“Kerentanan keamanan sedang telah diidentifikasi di runtime GitHub Actions yang dapat memungkinkan injeksi jalur dan variabel lingkungan ke dalam alur kerja yang mencatat data tidak tepercaya ke STDOUT. Ini dapat mengarah pada pengenalan atau modifikasi variabel lingkungan tanpa maksud dari pembuat alur kerja.

“Untuk membantu kami memecahkan masalah ini dan memungkinkan Anda menetapkan variabel lingkungan secara dinamis, kami telah memperkenalkan sekumpulan file baru untuk menangani pembaruan lingkungan dan jalur dalam alur kerja.

“Jika Anda menggunakan broker yang dihosting sendiri, pastikan mereka diperbarui ke versi 2.273.1 atau lebih tinggi.

Menurut Wilhelm, pada 12 Oktober, Project Zero menghubungi GitHub dan secara proaktif menawarkan mereka jendela 14 hari jika GitHub menginginkan lebih banyak waktu untuk menonaktifkan perintah yang rentan. Tentu saja, tawaran itu diterima dan GitHub berharap untuk menonaktifkan perintah yang rentan setelah 19 Oktober. Project Zero kemudian menetapkan tanggal pengungkapan baru untuk 2 November.

sumber: https://bugs.chromium.org


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.