Уязвимости Π² 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€