ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ Π² создании эксплоита для OpenSSH 9.1

Компания Qualys нашла способ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρƒ malloc ΠΈ double-free для инициирования ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния ΠΊΠΎΠ΄Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² OpenSSH 9.1, риск создания Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ эксплоита для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ ΠΊΠ°ΠΊ маловСроятный. ΠŸΡ€ΠΈ этом Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ эксплоита ΠΏΠΎΠΊΠ° остаётся ΠΏΠΎΠ΄ большим вопросом.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ освобоТдСниСм области памяти Π½Π° стадии Π΄ΠΎ прохоТдСния Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Для создания условий проявлСния уязвимости достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Π°Π½Π½Π΅Ρ€ SSH-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° «SSH-2.0-FuTTYSH_9.1p1» (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ старый SSH-ΠΊΠ»ΠΈΠ΅Π½Ρ‚) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выставлСния Ρ„Π»Π°Π³ΠΎΠ² «SSH_BUG_CURVE25519PAD» ΠΈ «SSH_OLD_DHGEX». ПослС выставлСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π±ΡƒΡ„Π΅Ρ€ «options.kex_algorithms» освобоТдаСтся Π΄Π²Π° Ρ€Π°Π·Π°.

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ· Qualys Π² Ρ…ΠΎΠ΄Π΅ манипуляций с ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ смогли Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ контроля Π½Π°Π΄ рСгистром процСссора «%rip», содСрТащим ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ для выполнСния. Разработанная Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° эксплуатации позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π»ΡŽΠ±ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ адрСсного пространства процСсса sshd Π² Π½Π΅ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ OpenBSD 7.2, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ поставляСмом с OpenSSH 9.1.

ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ являСтся Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ лишь ΠΏΠ΅Ρ€Π²ΠΎΠΉ стадии Π°Ρ‚Π°ΠΊΠΈ — для создания Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ эксплоита Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ASLR, NX ΠΈ ROP, ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· sandbox-изоляции, Ρ‡Ρ‚ΠΎ маловСроятно. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° ASLR, NX ΠΈ ROP трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± адрСсах, Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выявив Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· sandbox ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ошибка Π² ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ процСссС ΠΈΠ»ΠΈ ядрС.

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