Mastodon Mastodon Mastodon Mastodon

Цепочка критических уязвимостей в консоли NASA AIT-GUI позволяет отправлять команды без аутентификации

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

Исследователи безопасности из компании Cycode раскрыли цепочку уязвимостей в AIT-GUI — браузерной операторской консоли для открытого фреймворка AMMOS Instrument Toolkit (NASA/JPL), предназначенного для построения наземных систем управления космическими аппаратами и инструментами. Цепочка, отслеживаемая как GHSA-p9r8-2q67-fp86 с оценкой 9.4 по CVSS v3.1, позволяет неаутентифицированному атакующему отправлять произвольные команды на командную шину программного обеспечения. Затронуты версии 2.5.1 и более ранние; исправление заявлено в версии 2.5.2, однако анализ исходного кода показывает, что аутентификация на ключевых эндпоинтах по-прежнему отсутствует. Случаев эксплуатации в реальных условиях на данный момент не зафиксировано.

Техническая суть уязвимостей

По данным исследователей, веб-сервер AIT-GUI считывает настроенное значение хоста, но затем игнорирует его, привязывая слушатель к жёстко заданному адресу 0.0.0.0 на порту 8080. Это означает, что сервер принимает соединения со всех сетевых интерфейсов. При этом все маршруты, изменяющие состояние системы, доступны без аутентификации, авторизации и защиты от межсайтовой подделки запросов (CSRF).

Уязвимости классифицированы по трём категориям CWE:

  • CWE-306 — отсутствие аутентификации для критических функций
  • CWE-352 — межсайтовая подделка запросов
  • CWE-22 — обход пути (path traversal)

Неаутентифицированный атакующий, имеющий сетевой доступ к порту, может:

  • Отправлять произвольные команды инструментам и космическим аппаратам через POST /cmd
  • Запускать серверные скрипты через POST /script/run, включая файлы за пределами разрешённой директории посредством обхода пути
  • Выполнять командные последовательности через POST /seq, передавая в подпроцесс файлы из произвольных каталогов

Особую опасность представляет вектор атаки через CSRF. Поскольку маршруты принимают тела запросов в формате application/x-www-form-urlencoded, браузеры рассматривают их как «простые» запросы CORS и отправляют без предварительного запроса OPTIONS. Как сообщают исследователи, если оператор, имеющий доступ к консоли, откроет в браузере страницу, контролируемую атакующим, межсайтовый POST-запрос будет доставлен и обработан сервером — даже при развёртывании за межсетевым экраном.

Неполнота исправления в версии 2.5.2

Версия AIT-GUI 2.5.2 была выпущена 12 августа 2026 года. Согласно журналу изменений, в ней реализованы три ключевых улучшения:

  • Привязка к настроенному хосту (по умолчанию — localhost вместо 0.0.0.0)
  • Проверка Origin/Referer относительно Host для запросов POST, PUT, DELETE и PATCH для защиты от CSRF
  • Ограничение маршрутов /script/run и /seq настроенными корневыми директориями

Однако анализ исходного кода версии 2.5.2 показал, что аутентификация на эндпоинтах команд, скриптов и последовательностей не добавлена. Корневой маршрут по-прежнему вызывает Sessions.create() и выдаёт сессионную cookie любому запросу без проверки учётных данных, а командный маршрут принимает любой запрос с этой cookie. Таким образом, исправление снижает поверхность атаки, но не устраняет фундаментальную проблему отсутствия аутентификации.

Конфликт между записями об уязвимостях

Ситуацию усложняет наличие параллельной записи об уязвимости. CVE-2026-60112, оценённая в 9.3 по CVSS v4 и опубликованная 29 июля 2026 года — за три недели до отчёта Cycode — описывает тот же дефект отсутствия аутентификации. Однако записи расходятся в определении затронутых версий: VulnCheck и запись NVD указывают, что уязвимость затрагивает версии до 2.5.1 и ссылаются на коммит beb8fc0 как на патч, тогда как Cycode считает 2.5.1 уязвимой и называет 2.5.2 исправленной версией. При этом анализ исходного кода обеих версий показывает, что неаутентифицированная выдача сессий присутствует и в 2.5.1, и в 2.5.2.

Дополнительно, часть заявленного объёма уязвимости в отчёте Cycode может быть преувеличена: анализ исходного кода версии 2.5.1 показал, что маршрут /script/run уже содержит канонизацию и проверку вложенности пути, которые рекомендует сам отчёт. Неограниченная конструкция пути в 2.5.1 присутствует только на маршруте /seq.

Проблема распространения через PyPI

Критически важный аспект: последняя версия пакета ait-gui на PyPI — это 2.4.1, загруженная 27 июля 2023 года. Версии 2.5.0, 2.5.1 и 2.5.2 отсутствуют в истории релизов PyPI. Это означает, что пользователи, устанавливающие пакет через pip, получают версию с жёстко заданной привязкой к 0.0.0.0 и неограниченной конструкцией путей на обоих маршрутах. При этом PyPI не отображает информацию об уязвимостях для этого пакета, а ни одна из записей об уязвимостях не интегрирована в систему Dependabot.

Более широкий контекст безопасности наземного ПО NASA

AIT-GUI — не единственный компонент наземного программного обеспечения NASA с нерешёнными проблемами безопасности. В базе данных GitHub Advisory содержатся записи о нескольких уязвимостях в смежных проектах, включая обход пути в AMMOS Instrument Toolkit (CVE-2026-47731), критические уязвимости в сервере секвенирования NASA-AMMOS Aerie/PlanDev (CVE-2026-71214) и в эталонной реализации Asynchronous Network Management System (CVE-2026-71289).

Отдельного внимания заслуживает CVE-2024-35058 — критическая уязвимость удалённого выполнения кода в функции API wait библиотеки NASA AIT-Core, опубликованная в мае 2024 года. Она затрагивает версии вплоть до 2.5.2 включительно, и в её записи в GitHub Advisory Database до сих пор указано отсутствие исправленных версий.

Рекомендации

Организациям, использующим AIT-GUI, следует предпринять следующие шаги:

  • Немедленно проверить, доступен ли порт 8080 AIT-GUI из недоверенных сетей, и ограничить доступ средствами сетевой сегментации
  • Обновиться до версии 2.5.2 из репозитория GitHub (не через PyPI, где актуальная версия недоступна), учитывая, что это снижает, но не устраняет риск
  • Разместить перед AIT-GUI обратный прокси-сервер с полноценной аутентификацией, поскольку сам сервер не реализует проверку учётных данных
  • Ограничить доступ операторов консоли к внешним веб-ресурсам для минимизации риска CSRF-атак
  • Провести аудит развёрнутых экземпляров AIT-Core на предмет CVE-2024-35058, для которой патч отсутствует

Ситуация с AIT-GUI демонстрирует системную проблему: программное обеспечение для управления критической космической инфраструктурой, изначально разработанное для изолированных сред, оказывается уязвимым при изменении модели развёртывания. Расхождения между записями об уязвимостях, отсутствие актуальных версий в PyPI и неполнота патча в 2.5.2 означают, что единственной надёжной мерой защиты на данный момент остаётся размещение внешнего слоя аутентификации перед всеми экземплярами AIT-GUI, независимо от установленной версии.


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

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