Π Π°Π·ΠΊΡ€ΠΈΡ‚Π° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° уязвимост Π½Π° Exim

ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‰ΠΎ освобоТдаванС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4.92.2 с Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ уязвимости (CVE-2019 15846-), ΠΊΠΎΠ΅Ρ‚ΠΎ Π² конфигурацията ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ дистанционно изпълнСниС Π½Π° ΠΊΠΎΠ΄ ΠΎΡ‚ Π½Π°ΠΏΠ°Π΄Π°Ρ‚Π΅Π» с root ΠΏΡ€Π°Π²Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС появява само ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° TLS Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° спСциално ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ клиСнтски сСртификат ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° стойност към SNI. Уязвимост ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ Qualys.

ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π·Π° Π΅ΠΊΡ€Π°Π½ΠΈΡ€Π°Π½Π΅ Π½Π° спСциални Π·Π½Π°Ρ†ΠΈ Π² Π½ΠΈΠ·Π° (string_interpret_escape() ΠΎΡ‚ string.c) ΠΈ сС причинява ΠΎΡ‚ Π·Π½Π°ΠΊΠ° '\' Π² края Π½Π° Π½ΠΈΠ·Π°, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π° ΠΏΡ€Π΅Π΄ΠΈ нулСвия Π·Π½Π°ΠΊ ('\0') ΠΈ Π³ΠΎ избягва. ΠŸΡ€ΠΈ Π΅ΠΊΡ€Π°Π½ΠΈΡ€Π°Π½Π΅ послСдоватСлността '\' ΠΈ слСдният Π½ΡƒΠ»Π΅Π² ΠΊΠΎΠ΄ Π·Π° ΠΊΡ€Π°ΠΉ Π½Π° Ρ€Π΅Π΄Π° сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ Π·Π½Π°ΠΊ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»Π΅Ρ†ΡŠΡ‚ сС измСства към Π΄Π°Π½Π½ΠΈ извън Ρ€Π΅Π΄Π°, ΠΊΠΎΠΈΡ‚ΠΎ сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π΄Π°.

ΠšΠΎΠ΄ΡŠΡ‚, ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‰ string_interpret_escape(), разпрСдСля Π±ΡƒΡ„Π΅Ρ€ Π·Π° ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ въз основа Π½Π° дСйствитСлния Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ откритият ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° Π² област извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚Π΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ…ΠΎΠ΄Π΅Π½ Π½ΠΈΠ·, възниква ситуация ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ област извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° разпрСдСлСния Π±ΡƒΡ„Π΅Ρ€ ΠΈ ΠΎΠΏΠΈΡ‚ Π·Π° запис Π½Π° Π½Π΅Π΅ΠΊΡ€Π°Π½ΠΈΡ€Π°Π½ Π½ΠΈΠ· ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ запис извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°.

Π’ конфигурацията ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ уязвимостта ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° спСциално ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π΄ΠΎ SNI ΠΏΡ€ΠΈ установяванС Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° със ΡΡŠΡ€Π²ΡŠΡ€Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Ρ‡Ρ€Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° peerdn стойности Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ Π·Π° удостовСряванС Π½Π° клиСнтски сСртификат ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° сСртификати. Атаката Ρ‡Ρ€Π΅Π· SNI ΠΈ peerdn Π΅ възмоТна ΠΎΡ‚ пусканСто ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4.80, Π² ΠΊΠΎΠΉΡ‚ΠΎ функцията string_unprinting() Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π°Π½Π΅ Π½Π° peerdn ΠΈ SNI ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.

ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° Сксплойт Π·Π° Π°Ρ‚Π°ΠΊΠ° Ρ‡Ρ€Π΅Π· SNI, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π½Π° i386 ΠΈ amd64 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ Π½Π° Linux систСми с Glibc. Π•ΠΊΡΠΏΠ»ΠΎΠΉΡ‚ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° наслагванС Π½Π° Π΄Π°Π½Π½ΠΈ Π² областта Π½Π° ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ прСзаписванС Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π² която сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° рСгистрационния Ρ„Π°ΠΉΠ». Π˜ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° сС замСня с "/../../../../../../../../etc/passwd". Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° сС прСзаписва ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° с адрСса Π½Π° податСля, която ΠΏΡŠΡ€Π²ΠΎ сС записва Π² Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π½ΠΎΠ² ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» към систСмата.

Актуализации Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π° уязвимости, ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ‚ дистрибуции Debian, Ubuntu, Fedora, SUSE/openSUSE ΠΈ FreeBSD. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ с RHEL ΠΈ CentOS Π½Π΅ Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ², Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Exim Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎΡ‚ΠΎ ΠΈΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (Π² EPEL ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‡Π΅ ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ΠΈ, Π½ΠΎ Π·Π° сСга Π½Π΅ Π΅ поставСн към ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅). Π’ ΠΊΠΎΠ΄Π° Π½Π° Exim ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ с Π΅Π΄Π½ΠΎΡ€Π΅Π΄ΠΎΠ² тСкст пластир, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Скраниращия Π΅Ρ„Π΅ΠΊΡ‚ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½Π° Ρ‡Π΅Ρ€Ρ‚Π°, Π°ΠΊΠΎ Π΅ Π² края Π½Π° Ρ€Π΅Π΄Π°.

ΠšΠ°Ρ‚ΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° уязвимостта ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° TLS ΠΈΠ»ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅
ACL Ρ€Π°Π·Π΄Π΅Π» β€žacl_smtp_mailβ€œ:

условиС Π·Π° ΠΎΡ‚ΠΊΠ°Π· = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
условиС Π·Π° ΠΎΡ‚ΠΊΠ°Π· = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

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

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