Ескалацията Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° OpenBSD ΠΈ удостовСряванСто заобикалят уязвимоститС Π² smtpd, ldapd ΠΈ radiusd

Компания Qualys Ρ€Π°Π·ΠΊΡ€ΠΈ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ уязвимости Π² OpenBSD, Сдиният ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° сС ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚Π΅ дистанционно Π±Π΅Π· удостовСряванС към някои ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ услуги, Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² систСмата. Π”ΠΎΠΊΠ»Π°Π΄ΡŠΡ‚ Π½Π° Qualys отбСляза Π±ΡŠΡ€Π·Π°Ρ‚Π° рСакция Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° OpenBSD - всички ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ бяха Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Π½ Π² OpenBSD 6.5 ΠΈ OpenBSD 6.6 Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° 40 часа слСд Π»ΠΈΡ‡Π½ΠΎ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅.

Дистанционно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° уязвимост Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π·Π° удостовСряванС Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libc, която ΠΈΠ·Π²ΠΈΠΊΠ²Π°
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° /usr/libexec/auth/login_style, ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‰Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° командния Ρ€Π΅Π΄. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° login_style с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π½Π΅Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ β€ž-s ΡƒΡΠ»ΡƒΠ³Π°β€œ, Π΅ възмоТно Π΄Π° сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π·Π½Π°ΠΊΠ° "-" Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° потрСбитСлско ΠΈΠΌΠ΅, Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ΅ Ρ‰Π΅ сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ опция ΠΏΡ€ΠΈ стартиранС Π½Π° login_style. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Π°ΠΊΠΎ посочитС β€ž-schallengeβ€œ ΠΈΠ»ΠΈ β€ž-schallenge:passwdβ€œ ΠΊΠ°Ρ‚ΠΎ потрСбитСлско ΠΈΠΌΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° удостовСряванС, Ρ‚ΠΎΠ³Π°Π²Π° login_style Ρ‰Π΅ Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ заявката ΠΊΠ°Ρ‚ΠΎ заявка Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° S/ΠšΠ»ΡŽΡ‡.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŠΡ‚ S/Key Π² login_style сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° само Ρ„ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ, Π½ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° с ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π½Π°ΠΊ Π·Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ удостовСряванС. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ нападатСлят ΠΌΠΎΠΆΠ΅, прСдставяйки сС ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» β€ž-challengeβ€œ, Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ удостовСряванСто ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ, Π±Π΅Π· Π΄Π° прСдоставя ΠΏΠ°Ρ€ΠΎΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅. Всички ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ услуги, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ стандартни libc извиквания Π·Π° удостовСряванС, са ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ засСгнати ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. НапримСр Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° заобикалянС Π½Π° удостовСряванСто сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π² smtpd (AUTH PLAIN), ldapd ΠΈ radiusd.

Уязвимостта Π½Π΅ сС появява Π² sshd, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌΠ° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°, която провСрява ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° потрСбитСля Π² систСмата. Sshd ΠΎΠ±Π°Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° тСстванС Π½Π° уязвимостта Π½Π° систСмата - ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ потрСбитСлското ΠΈΠΌΠ΅ "-sresponse:passwd", Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° увисва, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ sshd Ρ‡Π°ΠΊΠ° login_passwd Π΄Π° Π²ΡŠΡ€Π½Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° прСдизвикатСлството, Π° login_passwd Ρ‡Π°ΠΊΠ° липсващитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π΄Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΈ (ΠΈΠΌΠ΅Ρ‚ΠΎ "- response" сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ опция). Π›ΠΎΠΊΠ°Π»Π΅Π½ Π°Ρ‚Π°ΠΊΡƒΠ²Π°Ρ‰ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ удостовСряванСто Π² ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° su, Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ "-sresponse" причинява срив Π½Π° процСса Ρ‡Ρ€Π΅Π· Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» ΠΏΡ€ΠΈ изпълнСниС Π½Π° функцията getpwnam_r("-schallenge", ...).

Π”Ρ€ΡƒΠ³ΠΈ уязвимости:

  • CVE-2019-19520 Π›ΠΎΠΊΠ°Π»Π½ΠΎ повишаванС Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅ Ρ‡Ρ€Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° xlock, прСдоставСна с Ρ„Π»Π°Π³Π° sgid, промСняща Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° Π½Π° β€žauthβ€œ. Π’ ΠΊΠΎΠ΄Π° Π½Π° xlock ΠΏΡ€Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡŠΡ‚ΠΈΡ‰Π° към Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΅ Π·Π°Π±Ρ€Π°Π½Π΅Π½ΠΎ само ΠΊΠΎΠ³Π°Ρ‚ΠΎ потрСбитСлският ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (setuid) Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π½Π° атакуващия Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата β€žLIBGL_DRIVERS_PATHβ€œ ΠΈ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° своята сподСлСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Ρ‡ΠΈΠΉΡ‚ΠΎ ΠΊΠΎΠ΄ Ρ‰Π΅ бъдС изпълнСн слСд повишаванС Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅ Π½Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° β€žauthβ€œ.
  • CVE-2019-19522 – Позволява Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Ρ‡Π»Π΅Π½ Π½Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° β€žauthβ€œ, Π΄Π° изпълнява ΠΊΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎ root, ΠΊΠΎΠ³Π°Ρ‚ΠΎ S/Key ΠΈΠ»ΠΈ YubiKey удостовСряванСто Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ Π² систСмата (Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅). ΠŸΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅Ρ‚ΠΎ към Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° β€žauthβ€œ, която ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° горСспомСнатата уязвимост Π² xlock, Π²ΠΈ позволява Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ /etc/skey ΠΈ /var/db/yubikey. НапримСр, атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π½ΠΎΠ² Ρ„Π°ΠΉΠ» /etc/skey/root, Π·Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π΅Π΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° удостовСряванС ΠΊΠ°Ρ‚ΠΎ root ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Ρ‡Ρ€Π΅Π· S/Key.
  • CVE-2019-19519 - Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ограничСнията Π½Π° рСсурситС Ρ‡Ρ€Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° su. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΅ посочСна опцията "-L", която ΠΊΠ°Ρ€Π° ΠΎΠΏΠΈΡ‚ΠΈΡ‚Π΅ Π·Π° удостовСряванС Π΄Π° сС повтарят Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎ, Π°ΠΊΠΎ са Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ, потрСбитСлският клас сС Π·Π°Π΄Π°Π²Π° само вСднъТ ΠΈ Π½Π΅ сС Π½ΡƒΠ»ΠΈΡ€Π° ΠΏΡ€ΠΈ слСдващи ΠΎΠΏΠΈΡ‚ΠΈ. НападатСлят ΠΌΠΎΠΆΠ΅ Π΄Π° изпълни β€žsu -l -Lβ€œ ΠΏΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΈΡ ΠΎΠΏΠΈΡ‚ Π΄Π° въвСдС Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° Π²Ρ…ΠΎΠ΄ Π½Π° някой Π΄Ρ€ΡƒΠ³ с Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ клас Π°ΠΊΠ°ΡƒΠ½Ρ‚, Π½ΠΎ ΠΏΡ€ΠΈ втория ΠΎΠΏΠΈΡ‚ Ρ‚ΠΎΠΉ ΠΌΠΎΠΆΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π΄Π° сС удостовСри ΠΊΠ°Ρ‚ΠΎ сСбС си. Π’ Ρ‚Π°Π·ΠΈ ситуация потрСбитСлят Ρ‰Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈ Π½Π° ограничСния въз основа Π½Π° потрСбитСлския клас, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΈΡ ΠΎΠΏΠΈΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ максималния Π±Ρ€ΠΎΠΉ процСси ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π·Π° процСс). ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ само Π·Π° Π·Π°Π΅ΠΌΠ°Π½Π΅ Π½Π° Π»ΠΈΠΌΠΈΡ‚ΠΈ ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ root потрСбитСлят трябва Π΄Π° Π΅ Π² Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° ΠΊΠΎΠ»Π΅Π»Π°).

ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ изпълнСниС Π² OpenBSD, Π½ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° валидността Π½Π° систСмнитС извиквания, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ услоТнява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимости. ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ позволява систСмнитС повиквания Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ само Π°ΠΊΠΎ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ рСгистрирани области Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Π—Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° области ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π½ΠΎΠ²ΠΎ систСмно ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ msyscall().

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