Клиентите на облачната платформа Microsoft Azure, използващи Linux в виртуални машини, се сблъскват с критична уязвимост (CVE-2021-38647), позволяваща дистанционно изпълнение на код с правата на root. Уязвимостта е получила кодово име OMIGOD и е забележителна с това, че проблемът съществува в приложението OMI Agent, което без много шум се инсталира в Linux околния свят.
OMI Agent автоматично се инсталира и активира при използване на услуги като Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management, Azure Diagnostics и Azure Container Insights. Например, подложени на атака са Linux околни среди в Azure, за които е активиран мониторинг. Агентът е част от открит пакет OMI (Open Management Infrastructure Agent) с реализация на стека DMTF CIM/WBEM за управление на IT инфраструктурата.
OMI Agent се инсталира в системата под потребителя omsagent и създава настройки в /etc/sudoers за стартиране на серия от скриптове с правата на root. В процеса на работа на някои услуги се създават слушащи мрежови сокети на мрежовите портове 5985, 5986 и 1270. Сканирането в услугата Shodan показва наличие на повече от 15 хиляди уязвими Linux околни среди в мрежата. В момента вече има работен прототип на експлойт в общественото пространство, който позволява изпълнение на собствен код с правата на root на подобни системи.
Проблемът се усложнява от факта, че в Azure явно не е документирано използването на OMI и OMI Agent се инсталира без предупреждение — достатъчно е да се съгласите с условията на избраната услуга при настройването на околната среда и OMI Agent автоматично ще бъде активиран, т.е. повечето потребители дори не подозирали за неговото наличие.
Методът на експлоатация е тривиален — достатъчно е да изпратите XML заявка до агента, премахвайки заглавката, отговаряща за удостоверяването. OMI използва удостоверяване при получаване на управляващи съобщения, проверявайки, че клиентът има право да изпрати определена команда. Същността на уязвимостта е в това, че при премахване на заглавката «Authentication», отговаряща за удостоверяването, сървър Системата счита успешното преминаване на проверката, приема управляващо съобщение и позволява изпълнението на команди с права root. За изпълнение на произволни команди в системата е достатъчно да използвате стандартната команда ExecuteShellCommand_INPUT в съобщението. Например, за стартиране на утилитата «id» е достатъчно да изпратите запитване: curl -H "Content-Type: application/soap+xml;charset=UTF-8" -k --data-binary "@http_body.txt" https://10.0.0.5:5986/wsman …
id
0
Компанията Microsoft вече пусна актуализация OMI 1.6.8.1, която отстранява уязвимостта, но тя все още не е предоставена на потребителите на Microsoft Azure (в новите среди все още е инсталирана старата версия OMI). Автоактуализацията на агента не се поддържа, затова потребителите трябва да актуализират пакета ръчно, използвайки командите "dpkg -l omi" в Debian/Ubuntu или "rpm -qa omi" в Fedora/RHEL. Като временно решение за защита се препоръчва да се блокира достъпа до мрежовите портове 5985, 5986 и 1270.
Освен CVE-2021-38647 в OMI 1.6.8.1 са отстранени и три уязвимости (CVE-2021-38648, CVE-2021-38645 и CVE-2021-38649), които позволяват на неразрешен локален потребител да изпълни своя код с права root.
Източник: opennet.ru
