Kerentanan dalam Git yang membawa kepada kebocoran data dan menulis ganti

Keluaran pembetulan sistem kawalan sumber teragih Git 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7 dan 2.30.8 telah diterbitkan, yang membetulkan dua kelemahan , menjejaskan pengoptimuman untuk pengklonan tempatan dan arahan "git apply". Anda boleh menjejaki keluaran kemas kini pakej dalam pengedaran pada halaman Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Jika tidak mungkin untuk memasang kemas kini, adalah disyorkan sebagai penyelesaian untuk mengelak daripada melaksanakan operasi "git clone" dengan pilihan "--recurse-submodules" pada repositori yang tidak dipercayai, dan untuk mengelak daripada menggunakan "git apply" dan " git am" arahan pada repositori yang tidak dipercayai. kod.

  • Kerentanan CVE-2023-22490 membenarkan penyerang yang mengawal kandungan repositori klon untuk mendapatkan akses kepada data sensitif pada sistem pengguna. Dua kelemahan menyumbang kepada kemunculan kelemahan:

    Cacat pertama membolehkan, apabila bekerja dengan repositori yang direka khas, mencapai penggunaan pengoptimuman pengklonan tempatan walaupun menggunakan pengangkutan yang berinteraksi dengan sistem luaran.

    Kelemahan kedua membenarkan peletakan pautan simbolik dan bukannya direktori $GIT_DIR/objek, serupa dengan kerentanan CVE-2022-39253, pembetulan yang menyekat peletakan pautan simbolik dalam direktori $GIT_DIR/objek, tetapi tidak semak fakta bahawa direktori $GIT_DIR/objek itu sendiri mungkin merupakan pautan simbolik.

    Dalam mod pengklonan tempatan, git memindahkan $GIT_DIR/objek ke direktori sasaran dengan membatalkan rujukan symlinks, yang menyebabkan fail yang dirujuk terus disalin ke direktori sasaran. Beralih menggunakan pengoptimuman pengklonan tempatan untuk pengangkutan bukan tempatan membolehkan eksploitasi kelemahan apabila bekerja dengan repositori luaran (contohnya, secara rekursif termasuk submodul dengan arahan "git clone β€”recurse-submodules" boleh membawa kepada pengklonan repositori berniat jahat yang dibungkus sebagai submodul dalam repositori lain).

  • Kerentanan CVE-2023-23946 membenarkan kandungan fail di luar direktori kerja ditimpa dengan menghantar input yang direka khas kepada arahan "git apply". Sebagai contoh, serangan boleh dilakukan semasa pemprosesan tampalan yang disediakan oleh penyerang dalam "git apply". Untuk menyekat patch daripada mencipta fail di luar salinan kerja, "git apply" menyekat pemprosesan patch yang cuba menulis fail menggunakan symlinks. Tetapi ternyata perlindungan ini boleh dipintas dengan membuat pautan simbolik di tempat pertama.

Sumber: opennet.ru

Tambah komen