Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-55511 — Удаленное выполнение кода (RCE) в системе управления миссиями Yamcs через внедрение Java-операторов в идентификаторы в двойных кавычках Yarch SQL Удаленное выполнение кода (RCE) в системе управления миссиями Yamcs через внедрение Java-операторов в идентификаторы в двойных кавычках Yarch SQL | Kitploit
Инструменты/GitHubGitHub/junfuture1103/cve-2026-55511
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Описание

Удаленное выполнение кода (RCE) в системе управления миссиями Yamcs через внедрение Java-операторов в идентификаторы в двойных кавычках Yarch SQL Удаленное выполнение кода (RCE) в системе управления миссиями Yamcs через внедрение Java-операторов в идентификаторы в двойных кавычках Yarch SQL

Сайт
11 месяц назадЕщё не проверено
Поделиться

CVE-2026-55511: Аутентифицированное RCE в Yamcs StreamSQL

Невооружённое доказательство концепции и техническая документация для CVE-2026-55511, уязвимости аутентифицированного внедрения Java-кода в компиляторе агрегатных выражений Yamcs StreamSQL.

ПолеЗначение
ПродуктYamcs (org.yamcs:yamcs-core)
УведомлениеGHSA-3g44-3m7x-cgg2
СлабостьCWE-94: Некорректный контроль генерации кода
СерьёзностьКритический, CVSS 3.1: 9.1
ВекторCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
Требуемая привилегияSystemPrivilege.ControlArchiving
Исправленные версииYamcs 5.13.2 и 5.12.8
Исправление в основной веткеb65a3d78178ba99a58b753feda6ecc3b5a694f13

Обзор

Yamcs принимает имена в двойных кавычках для объектов StreamSQL и, в уязвимых версиях, допускает почти любые символы внутри этих имён. Агрегатные выражения, такие как sum(...), динамически создают Java-код, используя имена столбцов, и компилируют его с помощью Janino SimpleCompiler.

Уязвимый код применяет лишь минимальную очистку имени перед помещением имени столбца в сгенерированный Java-идентификатор. Аутентифицированный пользователь с привилегией ControlArchiving может создать специально подготовленное имя столбца в кавычках, добраться до агрегатного компилятора через POST /api/archive/{instance}:executeSql и выполнить Java-код, контролируемый атакующим, внутри JVM сервера Yamcs.

Это нарушает предполагаемую границу авторизации Yamcs: ControlArchiving разрешает управление архивом, таблицами и потоками, но не предоставляет намеренно возможность произвольного выполнения Java на сервере.

Затронутые версии

Линия выпускаЗатронутыеИсправленные
5.13.x5.13.1 и ранее5.13.2
5.12.x5.12.7 и ранее5.12.8

Обновитесь до Yamcs 5.13.2, 5.12.8 или более поздней поддерживаемой версии.

Технические детали

Путь передачи данных:

root@kitploit:~
POST /api/archive/{instance}:executeSql
  -> TableApi.executeSql
  -> Yarch StreamSQL parser
  -> double-quoted object name
  -> SelectExpression aggregate binding
  -> SumExpression.aggregateFillCode_newData
  -> Expression.fillCode_InputDefVars
  -> CompilableAggregateExpression.getCompiledAggregate
  -> Janino SimpleCompiler.cook
  -> attacker-influenced Java executes in the Yamcs JVM

Три условия в совокупности создают проблему:

  1. Уязвимая грамматика S_DOUBLE_QUOTED_IDENTIFIER принимает любой символ, кроме CR, LF и ".
  2. Expression.fillCode_InputDefVars выводит имя Java-переменной из имени столбца. Его вспомогательная функция sanitizeName заменяет только / и -.
  3. Сгенерированный агрегатный класс компилируется и загружается с помощью Janino без ограничительной песочницы выражений.

Это оставляет доступными в сгенерированном методе newData(Tuple) символы синтаксиса Java, такие как точки с запятой, пробелы, скобки, операторы присваивания и точки. В отличие от пути с голыми выражениями, агрегатный метод предоставляет достижимый контекст операторов, в котором внедрённые операторы могут быть скомпилированы и выполнены.

Предварительные условия и влияние

Эксплуатация требует аутентифицированную учётную запись с SystemPrivilege.ControlArchiving. Учётная запись без этой привилегии отклоняется проверкой авторизации TableApi.executeSql.

Успешная эксплуатация выполняет Java с привилегиями процесса службы Yamcs. В зависимости от изоляции развёртывания это может повлиять на конфиденциальность, целостность и доступность данных миссии и среды хоста. Проблема не является неаутентифицированным RCE и сама по себе не повышает привилегии процесса Yamcs за пределы его разрешений операционной системы или контейнера.

Доказательство концепции

Включённый poc.py намеренно не является оружейным:

  • он не связывается с работающим сервером Yamcs;
  • он не выполняет команды операционной системы;
  • он проверяет соответствующую уязвимую цепочку исходных кодов в локальной копии Yamcs;
  • он генерирует небольшую Java-модель шаблона генерации агрегатного кода; и
  • он устанавливает только безвредный маркер свойства JVM.

Требования

  • Python 3.9+
  • Локальная копия исходных кодов Yamcs
  • Опционально JDK (javac и java) для теста безвредного маркера

Запуск

root@kitploit:~
cd /path/to/yamcs
python3 /path/to/poc.py \
  --json /tmp/evidence.json \
  --log /tmp/crash_evidence.log \
  --expect-crash

Ожидаемые индикаторы:

root@kitploit:~
source_chain_confirmed=true
generated_source_injection_present=true
marker_executed=true

Доказательства

  • evidence/evidence.json: структурированные результаты цепочки исходных кодов и Java-модели
  • evidence/crash_evidence.log: краткий журнал проверки

Включённые доказательства были получены на коммите исходных кодов Yamcs 98a05e95461207c143e4297ec4bb1b5a76e9cb19. Они подтверждают уязвимую цепочку исходных кодов, внедрение в сгенерированный исходный код и выполнение безвредного маркера.

Официальное исправление

Исправление от разработчиков называется Avoid RCE through double-quoted identifiers:

  • Основная ветка / 5.13.x: b65a3d78178ba99a58b753feda6ecc3b5a694f13, выпущено в 5.13.2
  • Обратный порт для 5.12.x: 8c1070b12c0a6c003903325cb2a1013347e2dbde, выпущено в 5.12.8

Основное изменение ограничивает идентификаторы в двойных кавычках с почти неограниченного набора символов:

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (~["\n","\r","\""])* "\"" >

на

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (<LETTER> | <DIGIT> | <SPECIAL_CHARS>)+ "\"" >

Это отклоняет символы разделителей операторов и построения выражений, необходимые для сообщённого внедрения, до того, как имя достигнет генерации Java-кода. Исправление также обновляет сгенерированные файлы парсера, документацию и связанный тест.

Ограничение может затронуть существующие имена объектов в кавычках, содержащие пробелы или знаки препинания, не входящие в белый список. Просмотрите схемы StreamSQL и автоматизацию перед обновлением или обратным портированием.

Отличие от CVE-2026-44632

CVE-2026-55511 является отдельной точкой входа от CVE-2026-44632 / GHSA-524g-x36v-9wm6. CVE-2026-44632 касается JavaExprAlgorithmExecutionFactory, доступен через функциональность переопределения алгоритмов базы данных миссии и защищён привилегией ChangeMissionDatabase.

Данная проблема находится в org.yamcs.yarch.streamsql, доступна через executeSql и защищена привилегией ControlArchiving. Более раннее исправление для версий 5.13.0 / 5.12.7, касающееся пути алгоритмов, не модифицировало компилятор StreamSQL или его обработку идентификаторов в кавычках.

Дополнительная документация

  • VULNERABILITY_REPORT.md: расширенный отчёт об уязвимости
  • PATCH_ANALYSIS.md: подробный анализ исправления от разработчиков и примечания по совместимости

Ссылки

  • Официальное уведомление об уязвимости Yamcs: GHSA-3g44-3m7x-cgg2
  • Официальный коммит исправления в основной ветке
  • Официальный коммит исправления для версии 5.12.x

Используйте этот материал только в системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.

Скачать инструмент