В GitLab EE устранили критическую уязвимость, грозящую угоном аккаунтов

В GitLab EE устранили критическую уязвимость, грозящую угоном аккаунтов

В GitLab EE устранили критическую уязвимость, грозящую угоном аккаунтов

Команда GitLab выпустила патчи для корпоративных систем управления репозиториями кода. Одна из закрытых уязвимостей получила 9,9 балла по шкале CVSS, пользователям рекомендуется установить обновления в кратчайшие сроки.

Проблема CVE-2022-1680 позволяет захватить контроль над аккаунтом пользователя, добавленного в премиум-группу. Эксплойт возможен в тех случаях, когда участникам группы предоставлена возможность единого входа на основе SAML.

Такие настройки в рамках услуг Premium+ обеспечивают обмен данными по протоколу SCIM (System Cloud Identity Management, система междоменного управления аутентификацией). Согласно бюллетеню GitLab, некорректная реализация этого механизма позволяет владельцу премиум-группы добавить участника проекта, указав его имя пользователя и email, затем подменить адрес электронной почты (через SCIM) и угнать, таким образом, аккаунт новобранца, если тот не включил 2FA.

Установив контроль над учетной записью жертвы, злоумышленник сможет также изменить отображаемое имя и юзернейм. 

Наличие CVE-2022-1680 подтверждено для всех прежних выпусков GitLab Enterprise Edition (EE), начиная с 11.10; обновления вышли только в поддерживаемых ветках. Сборки 14.9.5, 14.10.4 и 15.0.1 также содержат патчи для других, менее опасных уязвимостей. Некоторые из них актуальны и для GitLab Community Edition (CE):

  • CVE-2022-1940 — хранимая XSS в интеграции Jira;
  • CVE-2022-1948 — возможность выполнения стороннего скрипта (XSS) при использовании команд Quick Actions;
  • CVE-2022-1935 и CVE-2022-1936 — возможность обхода ограничений по IP при наличии действующего токена CI/CD;
  • CVE-2022-1944 — некорректная авторизация в интерактивном веб-терминале;
  • CVE-2022-1821 — возможность несанкционированного доступа к списку участников родительской группы; 
  • CVE-2022-1783 — обход запрета на добавление новых участников проектной группы.

Уязвимости в GitLab нередки. Такие дыры ставят под угрозу большое количество пользователей, и разработчики DevOps-платформы стараются латать ее в сжатые сроки, однако патчинг на местах далеко не всегда происходит так же оперативно, что на руку злоумышленникам.

Старая уязвимость в telnetd вернулась спустя 27 лет

Уязвимость из конца 90-х неожиданно вернулась и снова позволяет получить полный root-доступ к серверу без аутентификации. Об этом рассказал исследователь в области кибербезопасности Джастин Шварц, проанализировавший проблему в telnetd — демоне устаревшего, но всё ещё используемого протокола Telnet.

По словам Шварца, речь идёт о фактическом «возрождении» CVE-1999-0073 — известной уязвимости, которую многие давно считали закрытой страницей в истории.

Однако в современных реализациях обнаружился схожий механизм, позволяющий обойти проверку подлинности и повысить права. Проблема кроется в том, как telnetd запускает процесс /bin/login в контексте root-to-root.

В таком режиме ядро выставляет флаг AT_SECURE в ноль. А это значит, что динамический линкер не переходит в защищённый режим исполнения. В результате ответственность за очистку переменных окружения ложится на сам telnetd. Именно в этот момент, по словам исследователя, всё идёт не так.

Если демон не фильтрует переменные окружения должным образом, атакующий может подменить их и заставить систему загрузить вредоносную библиотеку (shared object). Шварц продемонстрировал технику повышения привилегий, при которой создаётся копия /bin/sh с SUID/SGID-правами. Фактически это даёт полный контроль над системой.

Ключевой момент: для эксплуатации не требуется никакой аутентификации через telnet. Повышение привилегий происходит без входа в систему.

Шварц считает, что проблема связана с давним подходом к фильтрации и использованием «чёрных списков» переменных. Такой метод, по его мнению, оказался ненадёжным и оставлял лазейки почти 27 лет. В качестве решения он предлагает перейти к модели «белого списка», как это реализовано в OpenSSH, где разрешён строго ограниченный набор безопасных переменных.

Шварц также предлагает объединить проблему в единый CVE с формулировкой «Некорректная очистка среды окружения в telnetd», чтобы закрыть как старые векторы, так и новый сценарий с динамическим линкером.

При этом рабочий код эксплойта исследователь публиковать не стал, чтобы не спровоцировать волну кибератак.

Напомним, в пролом месяце мы писали про ещё критическую уязвимость в telnetd, которая жила почти 10 лет и давала root-доступ.

RSS: Новости на портале Anti-Malware.ru