Сигурност

Редакция Overclock.bg ·

Дупка в софтуер на NASA: команди без оторизация

Дупка в софтуер на NASA: команди без оторизация

Компанията за сигурност Cycode оповести на 18 август критична поредица от слабости в AIT-GUI — браузърната операторска конзола на инструментариума AMMOS на NASA. Неавтентикиран атакуващ е можел да изпраща команди към космически апарати и научни инструменти, да пуска скриптове от страна на сървъра и да изпълнява командни последователности. Уязвимостта се води под GHSA-p9r8-2q67-fp86 с оценка 9.4 по CVSS 3.1 и засяга всички версии до 2.5.1 включително. Кръпката излезе във версия 2.5.2 на 12 август.

Какво е AIT-GUI

AMMOS Instrument Toolkit е open source рамка на NASA и Лабораторията за реактивно движение (JPL), с която екипите изграждат наземни системи за данни. През нея се изпращат командите нагоре и се обработва телеметрията, която се връща обратно. AIT-GUI е уеб интерфейсът към тази рамка — това, което операторът вижда в браузъра си.

Тоест говорим не за сайта на агенцията, а за конзолата, която стои между човека и командната шина на апарата.

Четири слабости, събрани в една верига

Cycode описва проблема като композиция от няколко грешки, всяка от които поотделно изглежда битова:

  • Игнориран host в конфигурацията. Сървърът прочита зададения адрес и после мълчаливо го изхвърля, като се закача твърдо на 0.0.0.0 — тоест на всички мрежови интерфейси, порт 8080 по подразбиране. Администратор, който е написал localhost, е получавал точно обратното.
  • Липса на автентикация и оторизация (CWE-306). Нито един от маршрутите, които променят състояние, не е изисквал вход в системата. Сесийна бисквитка се е получавала с обикновено GET / към началната страница.
  • Няма CSRF защита (CWE-352). Заявките са приемани като form-encoded, което ги прави „прости” за CORS и минава без preflight.
  • Path traversal (CWE-22). Маршрутите /seq и /script/run са градили пътища във файловата система от непроверен вход.

Демонстрацията на изследователите се събира в един ред:

curl -X POST http://TARGET:8080/cmd --data-urlencode 'command=NO_OP 1 2 3'

Защо firewall не е бил достатъчен

Най-неприятната част е втората атака. Липсата на CSRF защита означава, че не е нужен пряк мрежов достъп до сървъра. Достатъчно е операторът, който има отворена конзолата, да посети зловреден сайт — формата в страницата изпраща заявката от неговия браузър, от неговата машина, вътре в защитения периметър.

Така дори инсталация, вързана само локално или зад firewall, е оставала достижима. Уязвимостта е открита от Yuval Elbar от Cycode чрез анализ на кода с помощта на AI и последваща човешка проверка.

Цитатът от техническия разбор на Cycode обобщава залога добре: обхватът на поражението при неавтентикиран POST тук се мери в изпратени команди към инструменти, а не в обезобразени страници.

Кран сваля носеща конструкция върху рефлектора на антената DSS-23 в Goldstone Снимка: NASA/JPL-Caltech

Какво поправя 2.5.2 и какво остава

Според публикацията на Infosecurity Magazine JPL е потвърдила и отстранила проблема. Новата версия:

  • закача сървъра на реално конфигурирания хост, по подразбиране localhost;
  • добавя проверка за същия произход при заявките, които променят състояние;
  • ограничава /script/run и /seq до техните конфигурирани директории.

Cycode обаче определя корекцията като частична. Слабостта CWE-306 остава: крайните точки продължават да приемат всяка валидна сесийна бисквитка, без да искат креденшъли. Отстранено е далечното изложение и CSRF векторът, но не и същинската липса на автентикация.

Има и объркваща подробност около разпространението — в PyPI последната публикувана версия си остава 2.4.1 от юли 2023 г., а 2.5.0–2.5.2 съществуват само като тагове в GitHub. Ако обновявате, вземете кода от хранилището, не от пакетния индекс.

Отделно, в края на юли беше публикувана CVE-2026-60112 с оценка 9.3 по CVSS 4 в същия периметър, открита от Saidakbarxon Maxsudxonov.

Внимание

Ако поддържате инсталация на AIT-GUI, освен ъпгрейда прегледайте историята на изпълнените команди и последователности за необяснима активност. Публична експлоатация не е засичана, но проверката е евтина.

Контекст

Случаят е поредното напомняне, че наследеният оперативен софтуер често е писан за затворена мрежа и никога не е преразглеждан, след като тази мрежа е спряла да бъде затворена. Същата седмица видяхме пет уязвимости с максималната оценка 10 в мрежовия софтуер на Cisco, а дни по-рано — критична дупка в GitLab, експлоатирана 48 часа след кръпката.

Разликата тук е в мащаба на последствията. Няма публично посочени мисии и няма данни за реални атаки, но самата възможност неавтентикиран POST да стигне до командната шина на инструмент показва колко тънка е била преградата. Ъпгрейдът до 2.5.2 е задължителен минимум, не финал — докато автентикацията не се появи, конзолата не бива да е достъпна от нищо, на което не се доверявате напълно.

Харесва ви? Отбележете ни и ще ни виждате по-нагоре в Google.

Предпочитан източник в Google

Прочетете още