Защитная памятка по Apache Camel platform-http-main и GHSA-fpm2-m4qq-wghr: граница версий, runtime-инвентарь, безопасный regression-тест, стоп-критерии, канарейка, rollback и очищенный пакет владельцу.
Где проходит граница дефекта
GHSA-fpm2-m4qq-wghr подтверждает отдельную проблему в Apache Camel platform-http-main: криптографически корректный токен с неподходящим издателем или получателем мог пройти неполную проверку claims. Граница применимости — Camel platform-http-main до 4.22.0 в конфигурациях JWT-аутентификации, где подписи было недостаточно без проверки ожидаемых issuer и audience. Прямой безопасный ответ: сначала доказать runtime-версию и достижимость именно этой функции, затем обновить Camel до 4.22.0 и явно закрепить ожидаемые issuer и audience в effective runtime configuration. Наличие продукта в inventory ещё не доказывает уязвимость, а отсутствие жалоб не доказывает исправление. Вердикт формулируют как passed, failed, blocked или not affected by reachability; последний требует проверяемого доказательства отключённого пути.
Какие признаки собрать до изменения
Для границы применимости GHSA-fpm2-m4qq-wghr заполните минимальную таблицу Apache Camel platform-http-main: «runtime artifact | signature | issuer match | audience match | route decision». Источником версии служит активный runtime, а lockfile, registry и image digest используются для взаимной сверки. Отдельно докажите, что уязвимая функция включена или действительно недостижима. Vendor backport допустим только с первичным changelog и идентифицируемым патчем. Рабочие адреса, аккаунты, cookies, ключи, журналы целиком и конфигурационные секреты не собираются. Любая нестыковка версии или reachability оставляет решение в blocked, не в passed.
Ограниченный тест на синтетике
Используйте изолированный стенд, synthetic data и восстановимый snapshot. Безопасный отрицательный контроль: локально выпустить три короткоживущих синтетических токена одной тестовой подписью: корректный, с чужим audience и с чужим issuer; только первый должен достигнуть защищённого route. Сначала запишите baseline на текущей разрешённой сборке без активного эксплуатационного payload, затем повторите тот же сценарий на исправленной версии. Passed означает совпадение заранее объявленного security decision и сохранение штатной функции. Timeout, пустой ответ, один HTTP status или тишина журнала не считаются успехом: они могут означать неверный маршрут, crash или потерю telemetry.
Развёртывание и путь назад
План remediation: обновить Camel до 4.22.0 и явно закрепить ожидаемые issuer и audience в effective runtime configuration. До замены сохраните store/config backup, старый SHA-256, lockfile или image digest и одну проверенную процедуру возврата. Канарейка повторяет production runtime path, но не содержит пользовательских данных и не получает лишних прав. После изменения сверяют реально загруженный модуль, штатный smoke, отрицательный fixture, restart counter, ресурсный бюджет и первый релевантный error-class. Rollback проверяется отдельно от миграций состояния: старый бинарник может быть несовместим с уже изменёнными данными.
Что не является доказательством
Стоп-линия для этой темы: используются production keys или токены, тестовый endpoint имеет доступ к данным либо отрицательный токен сохраняется в журнале целиком. При её срабатывании остановите опыт, сохраните только обезличенные признаки и восстановите snapshot. Не расширяйте тест, чтобы добиться воспроизведения. Ложнозелёные сигналы: один health endpoint, package metadata без runtime, успешное TCP-соединение, отсутствие публичного exploit и отсутствие пользовательских обращений. Эти признаки полезны для диагностики, но не отвечают на конкретный security decision и не заменяют первичную advisory-запись.
Компонентная матрица решения
Проверка claims должна различать четыре результата: невалидная подпись, неизвестный issuer, неподходящий audience и разрешённый principal. Один общий 401 скрывает, на каком уровне сработала защита; один 200 ничего не говорит об отрицательных ветках. В очищенный протокол переносят только тип решения и synthetic token id, а заголовок Authorization никогда не сохраняют. Результат считается самостоятельным только при сохранённой матрице до/после, заранее заданном expected decision и проверенном возврате. Если эта практическая развилка уже покрыта внутренней инструкцией, правильное действие — обновить её, а не создавать соседний URL под вариант названия продукта.
Финальный протокол проверки
Владельцу передают GHSA-fpm2-m4qq-wghr, точную версию до и после, URL первичного источника, SHA-256 артефакта, timestamp Europe/Moscow и одну очищенную строку «runtime artifact | signature | issuer match | audience match | route decision». Добавьте expected и observed decision, длительность ограниченного окна, backup/rollback status и один обезличенный error-class. Удалите secrets, абсолютные домашние пути, IP, account ids, session values и содержимое пользовательских объектов. Если reachability не подтверждена, честный статус blocked; advisory не доказывает, что конкретная установка была затронута.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, версии и ссылки перепроверены. Реальные пользовательские данные, активные payload и вымышленные результаты тестов не использовались.
Источники и проверка
- GitHub Advisory Database: GHSA-fpm2-m4qq-wghr проверено 2026-08-30
- Maven Central: camel-platform-http-main 4.22.0 проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.