Уязвимости Π² Git, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ субмодулСй ΠΈ использовании git shell

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ выпуски распрСдСлённой систСмы управлСния исходными тСкстами Git 2.38.1, 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3 ΠΈ 2.37.4, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… устранСны Π΄Π²Π΅ уязвимости, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «git clone» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «—recurse-submodules» с Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями ΠΈ ΠΏΡ€ΠΈ использовании ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ «git shell». ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° выпуском ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² дистрибутивах ΠΌΠΎΠΆΠ½ΠΎ Π½Π° страницах Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.

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

    Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ клонирования «—local», git пСрСносит содСрТимоС $GIT_DIR/objects Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (создаёт ТёсткиС ссылки ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²), выполняя Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ символичСских ссылок (Ρ‚.Π΅. Π² ΠΈΡ‚ΠΎΠ³Π΅ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ символичСскиС ссылки, Π° нСпосрСдствСнно Ρ„Π°ΠΉΠ»Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ссылки). Для блокирования проявлСния уязвимости Π² Π½ΠΎΠ²Ρ‹Ρ… выпусках git Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «—local», содСрТащих символичСскиС ссылки Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ $GIT_DIR/objects. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° protocol.file.allow ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° «user», Ρ‡Ρ‚ΠΎ относит ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ клонирования с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° file:// Π² разряд нСбСзопасных.

  • CVE-2022-39260 — цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ split_cmdline(), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «git shell». ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для Π°Ρ‚Π°ΠΊΠΈ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… «git shell» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ (создан Ρ„Π°ΠΉΠ» $HOME/git-shell-commands). Эксплуатация уязвимости ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² систСмС ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ большС 2 Π“Π‘.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ