Уязвимости Π² Git, приводящая ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ ΠΈ пСрСзаписи Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ выпуски распрСдСлённой систСмы управлСния исходными тСкстами 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 ΠΈ 2.30.8, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… устранСны Π΄Π²Π΅ уязвимости, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ локальном ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git apply». ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° выпуском ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ Π½Π° страницах Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ прСдставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, Π² качСствС ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΌΠ΅Ρ€ рСкомСндуСтся ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ «git clone» с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «—recurse-submodules» с рСпозиториями, Π½Π΅ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ довСрия, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «git apply» ΠΈ «git am» с Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

  • Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2023-22490 позволяСт Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌΡƒ содСрТимоС ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ рСпозитория, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° систСмС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ПоявлСнию уязвимости ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π΅ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

    ΠŸΠ΅Ρ€Π²Π°Ρ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°, позволяСт ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ примСнСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ клонирования Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ использовании транспорта, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ со внСшними систСмами.

    Вторая Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°, допускаСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ символичСской ссылки вмСсто ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° $GIT_DIR/objects ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ CVE-2022-39253, Π² исправлСнии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ символичСских ссылок Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ $GIT_DIR/objects, Π½ΠΎ Π½Π΅ провСрялся Ρ„Π°ΠΊΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сам ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ $GIT_DIR/objects ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ символичСской ссылкой.

    Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ локального клонирования git пСрСносит $GIT_DIR/objects Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, выполняя Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ символичСских ссылок, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСпосрСдствСнно Ρ„Π°ΠΉΠ»Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ссылки. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ клонирования для нСлокального транспорта позволяСт ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшними рСпозиториями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, рСкурсивноС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ субмодулСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «git clone —recurse-submodules» ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ врСдоносного рСпозитория, ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ΅ субмодуля Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ).

  • Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2023-23946 позволяСт ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Π½Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git apply». НапримСр, Π°Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² «git apply» ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠΌ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ. Для блокирования создания ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Π½Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, «git apply» Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с использованиСм символичСских ссылок. Но эту Π·Π°Ρ‰ΠΈΡ‚Ρƒ оказалось ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ, создав ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru