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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-85245 — Запускаемый proof-of-concept на Spring Boot, воспроизводящий CVE-2026-85245 — раскрытие данных при кросс-обмене в camel-thrift, со сравнением уязвимой и исправленной версий и рекомендациями по устранению. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-85245
Оборонительные ИнструментыАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и Образование
GitHuboscerd/cve-2026-85245

CVE-2026-85245

Запускаемый proof-of-concept на Spring Boot, воспроизводящий CVE-2026-85245 — раскрытие данных при кросс-обмене в camel-thrift, со сравнением уязвимой и исправленной версий и рекомендациями по устранению.

Репозиторий
2 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-85245 — camel-thrift: раскрытие данных между обменами (общий defaultInstance)

Запускаемый воспроизводитель proof-of-concept для уязвимости Apache Camel, при которой формат данных Thrift выполнял демаршалинг в общий defaultInstance целевого типа, а не в свежую копию, и возвращал этот общий объект в качестве тела обмена. Поскольку экземпляр является общим в масштабе процесса, состояние, записанное при демаршалинге одного сообщения, оставалось на объекте и было видно каждому последующему сообщению, использовавшему тот же тип. Поля, отсутствующие в последующем полезном грузе, сохраняли значения предыдущего сообщения, поэтому содержимое, принадлежащее одному отправителю, могло быть прочитано при обработке сообщения другого отправителя, а параллельные обмены могли наблюдать частично записанное состояние друг друга. В развёртывании, которое обслуживает более одного арендатора или пользователя через один и тот же маршрут, это раскрытие данных одной стороны другой.

Только Spring Boot. Расширения camel-quarkus-thrift не существует, поэтому этот воспроизводитель поставляется с единственным модулем Camel Spring Boot. (Дефект находится в ThriftDataFormat компонента, который не зависит от среды выполнения.)

Среда выполненияКаталогСтек
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-thrift 4.22.0 (уязвим; исправлено в 4.22.1)

Что демонстрируется

Маршрут определяет один ThriftDataFormat (на основе сгенерированного типа Thrift Work) и повторно использует его для каждого сообщения, как обычно и делают маршруты. Два арендатора отправляют через него сообщение:

  • арендатор A: Work{num1=1, op=ADD, comment="TENANT-A-SECRET-…"} — необязательное поле comment несёт конфиденциальные данные;
  • арендатор B: Work{num1=3, op=SUBTRACT} — без поля comment.

Маршрут выполняет демаршалинг сообщения арендатора A, затем арендатора B.

  • Уязвимо: демаршалированный объект арендатора B возвращается, неся comment арендатора A — Thrift присваивает только те поля, которые присутствуют во входящих байтах, и оба сообщения были десериализованы в (и возвращены как) один и тот же общий экземпляр, поэтому отсутствующее поле B сохранило значение A. Оба тела — буквально один и тот же объект.
  • Исправлено: comment арендатора B равен null — каждый обмен получает свою собственную очищенную копию.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: B sees A's secret; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85245-thrift-cross-exchange-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: B's comment is null; >>> Not exploited

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

СвойствоЗначение
Компонентcamel-thrift (ThriftDataFormat.unmarshal)
CWECWE-488 (Раскрытие элемента данных не той сессии)
Уровень серьёзностиMEDIUM
Вектор атакиДва сообщения одного и того же типа Thrift через один маршрут; последующее сообщение, опускающее поле, наследует значение из предыдущего
ВоздействиеРаскрытие данных между обменами / между арендаторами; параллельные обмены могут наблюдать частично записанное состояние друг друга
Затронутые версииС 4.0.0 до 4.18.5, с 4.19.0 до 4.22.1
Исправленные версии4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24442
БлагодарностьClaude Security Scan Tool

Рекомендация: https://camel.apache.org/security/CVE-2026-85245.html

Сгенерированные типы Thrift (Work, Operation) — это публичные тестовые фикстуры из собственных тестов camel-thrift Apache Camel.

Исправление

ThriftDataFormat.unmarshal теперь десериализует в копию для каждого обмена: TBase instance = defaultInstance.deepCopy(); instance.clear(); — затем десериализует байты в instance и возвращает его. Каждый обмен получает собственный очищенный объект, поэтому ни одно поле не переносится между сообщениями и никакие два обмена не разделяют тело.

Меры защиты, если вы не можете обновиться

Скопируйте десериализованное тело в новый экземпляр сразу после выполнения формата данных и не сохраняйте ссылки на возвращённый объект.

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

Этот репозиторий публикуется в образовательных и защитных целях: чтобы помочь пользователям Apache Camel понять уязвимость, проверить, затронуты ли они, и убедиться, что обновление её устраняет. «Секрет» — это инертный, вымышленный маркер-строка. Не используйте этот материал против систем, которыми вы не владеете и не управляете.

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