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

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

Старая уязвимость в 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-доступ.

В GitHub нашли критическую дыру: можно было получить доступ к репозиториям

Исследователи из Wiz обнаружили критическую уязвимость в GitHub, которая позволяла выполнить код на серверной инфраструктуре платформы через обычную команду git push. Проблема получила идентификатор CVE-2026-3854 и затрагивала GitHub[.]com, корпоративный сервер GitHub и несколько облачных корпоративных версий GitHub.

Суть уязвимости была в ошибке обработки пользовательских параметров при git push.

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

Для GitHub Enterprise Server это могло означать полную компрометацию сервера и доступ ко всем репозиториям и внутренним секретам. На GitHub.com риск был ещё больше: из-за общей бэкенд-инфраструктуры злоумышленник теоретически мог получить доступ к миллионам публичных и закрытых репозиториев, расположенных на затронутых узлах.

GitHub быстро закрыл проблему. Патч для GitHub.com развернули 4 марта, а для в GitHub Enterprise Server дыру закрыли 10 марта. По итогам внутреннего расследования корпорация заявила, что признаков эксплуатации уязвимости в реальных атаках не обнаружено.

Однако для корпоративных пользователей риск всё ещё актуален, если они не обновили свои инсталляции GitHub Enterprise Server. По данным Wiz, на момент публикации значительная часть таких серверов всё ещё оставалась без патча. Поэтому администраторам стоит как можно быстрее перейти на обновлённые версии.

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