Ketiadaan delimiter ini berarti jika seorang penyerang menamai branch-nya dengan sesuatu seperti --exec='perintah jahat'git rebase--exec sendiri memang dirancang untuk menjalankan perintah shell setelah setiap komit diputar ulang. Hasilnya? Eksekusi kode penuh di sistem operasi yang mendasarinya, dengan hak akses proses server Gogs .
Rincian serangan sekilas:
--exec, diikuti dengan perintah shell yang mereka inginkan Peneliti keamanan Jonah Burgess dari Rapid7 Labs, yang menemukan kekurangan ini, menjelaskan mekanismenya dengan blak-blakan: "Kerentanan ini memungkinkan setiap pengguna terautentikasi untuk mencapai eksekusi kode jarak jauh (RCE) di server dengan membuat pull request dengan nama branch berbahaya yang menyuntikkan flag --exec ke git rebase
Bagi mereka yang telah mengikuti proyek Gogs, zero-day kritis yang tidak ditambal ini bukanlah kejutan. Ini adalah contoh terbaru dan paling parah dari pola bertahun-tahun di mana laporan keamanan disambut dengan diamnya sang pengelola utama—dan dalam praktiknya, satu-satunya—dari proyek ini.
Berikut lini masa kelalaian yang terdokumentasi dengan baik oleh berbagai tim peneliti independen:
Sejarah ini telah mengubah pengungkapan terbaru Rapid7 menjadi lebih dari sekadar imbauan keamanan. Seperti yang dikatakan oleh salah satu media industri, situasi ini adalah "pengingat akan batasan proyek open source" ketika mereka bergantung pada pengelola tunggal yang tidak responsif . Tanpa tata kelola multi-pihak yang efektif, sebuah perangkat lunak infrastruktur penting yang banyak digunakan dapat menjadi risiko permanen.
Karena tambalan perangkat lunak tidak tersedia, administrator harus mengandalkan perubahan konfigurasi dan kontrol tingkat jaringan untuk menetralkan vektor serangan. Langkah-langkah berikut menghentikan ancaman langsung dan mengurangi permukaan serangan.
1. Segera Nonaktifkan "Rebase before merging"
Ini adalah mitigasi paling efektif. Seluruh rantai serangan bergantung pada gaya penggabungan spesifik ini. Mengubah pengaturan repositori atau seluruh instansi ke "Merge commit" atau "Squash" menghilangkan jalur kode yang rentan sepenuhnya .
2. Batasi Akses Jaringan
Serangan ini memerlukan akses HTTP terautentikasi untuk membuat pull request. Jika server Gogs Anda tidak perlu publik, pindahkan di belakang VPN atau firewall yang hanya mengizinkan pengguna internal tepercaya. Ini akan menghilangkan platform dari pemindai internet massal dan penyerang oportunistik.
3. Perketat Pendaftaran dan Izin Pengguna
Karena setiap pengguna terautentikasi dapat mengeksploitasi kekurangan ini, meminimalkan jumlah akun di server adalah pertahanan utama. Nonaktifkan pendaftaran mandiri dan setujui pengguna baru secara manual. Segera audit daftar pengguna Anda dan nonaktifkan akun yang sudah tidak terpakai atau tidak dikenal .
4. Pantau Pull Request untuk Anomali
Terapkan pemantauan agresif untuk nama branch pull request yang mengandung karakter mencurigakan, termasuk tanda hubung ganda (--), titik koma, backtick, atau token perintah shell yang jelas seperti exec, curl, atau wget. Nama branch yang tidak biasa adalah indikator kuat dari upaya eksploitasi aktif .
5. Rencanakan Keluar Jangka Panjang Anda dari Gogs
Mengingat pola kerentanan kritis yang terdokumentasi, ketergantungan berkelanjutan pada Gogs adalah risiko strategis. Alternatif yang paling layak adalah Gitea, fork Gogs yang digerakkan oleh komunitas yang memiliki tim pengembangan multi-pengelola yang kuat dan proses keamanan yang responsif. Beberapa platform layanan Git utama lainnya ada, tetapi untuk tim yang memilih Gogs khusus karena sifatnya yang ringan dan self-hosted, Gitea adalah pengganti yang hampir serupa yang menghilangkan hambatan pengelola tunggal .
6. Bersiap untuk Tambalan (Jika Ada)
Tetap berlangganan halaman keamanan Gogs dan rilis GitHub. Jika tambalan akhirnya diterbitkan, segera tingkatkan. Namun, rencanakan postur keamanan Anda dengan asumsi bahwa pola ini akan berulang, dan bahwa kerentanan kritis di masa depan akan kembali tidak ditambal selama berbulan-bulan.
Comments
0 comments