Kerentanan dalam Git yang membolehkan anda menulis ganti fail atau melaksanakan kod anda sendiri

Keluaran pembetulan sistem kawalan sumber teragih Git 2.40.1, 2.39.3, 2.38.5, 2.37.7, 2.36.6, 2.35.8, 2.34.8, 2.33.8, 2.32.7, 2.31.8 dan 2.30.9. telah diterbitkan .XNUMX, yang membetulkan lima kelemahan. Anda boleh mengikuti keluaran kemas kini pakej dalam pengedaran pada halaman Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Sebagai penyelesaian untuk melindungi daripada kelemahan, adalah disyorkan untuk mengelak daripada menjalankan perintah "git apply --reject" apabila bekerja dengan patch luaran yang belum diuji, dan semak kandungan $GIT_DIR/config sebelum menjalankan "git submodule deinit", "git config --rename-section" dan " git config --remove-section" apabila berurusan dengan repositori yang tidak dipercayai.

Kerentanan CVE-2023-29007 membenarkan penggantian tetapan dalam fail konfigurasi $GIT_DIR/config, yang boleh digunakan untuk melaksanakan kod dalam sistem dengan menentukan laluan ke fail boleh laku dalam arahan core.pager, core.editor dan core.sshCommand. Kerentanan disebabkan oleh ralat logik yang menyebabkan nilai konfigurasi yang sangat panjang boleh dianggap sebagai permulaan bahagian baharu apabila menamakan semula atau memadam bahagian daripada fail konfigurasi. Dalam amalan, penggantian nilai mengeksploitasi boleh dicapai dengan menentukan URL submodul yang sangat panjang yang disimpan ke fail $GIT_DIR/config semasa pemula. URL ini boleh ditafsirkan sebagai tetapan baharu apabila cuba mengalih keluarnya melalui "git submodule deinit".

Kerentanan CVE-2023-25652 membenarkan menulis ganti kandungan fail di luar pepohon kerja apabila tampalan yang dibuat khas diproses oleh arahan "git apply --reject". Jika anda cuba melaksanakan tampung berniat jahat dengan arahan "git apply" yang cuba menulis ke fail melalui pautan simbolik, operasi akan ditolak. Dalam Git 2.39.1, perlindungan manipulasi symlink telah diperluaskan untuk menyekat patch yang mencipta symlink dan cuba menulis melaluinya. Intipati kelemahan yang sedang dipertimbangkan ialah Git tidak mengambil kira bahawa pengguna boleh melaksanakan perintah "git apply -reject" untuk menulis bahagian tampung yang ditolak sebagai fail dengan sambungan ".rej", dan penyerang boleh gunakan peluang ini untuk menulis kandungan ke direktori sewenang-wenangnya, selagi kebenaran semasa membenarkannya.

Di samping itu, tiga kelemahan yang muncul hanya pada platform Windows telah diperbaiki: CVE-2023-29012 (cari doskey.exe boleh laku dalam direktori kerja repositori apabila melaksanakan perintah "Git CMD", yang membolehkan anda mengatur pelaksanaan kod anda pada sistem pengguna), CVE-2023 -25815 (limpahan penimbal semasa memproses fail penyetempatan tersuai dalam gettext) dan CVE-2023-29011 (kemungkinan menggantikan fail connect.exe apabila bekerja melalui SOCKS5).

Sumber: opennet.ru

Tambah komen