Apache Camel: уязвимость в camel-fop позволяет читать файлы и обращаться к внешним хостам (CVE-2026-91858)
В Apache Camel обнаружена уязвимость CVE-2026-91858 в компоненте camel-fop: при наличии сторонней реализации JAXP TransformerFactory (например, Saxon-HE) обработка недоверенного XSL-FO приводит к разрешению внешних DTD и сущностей. Это позволяет злоумышленнику читать файлы, доступные процессу Camel, и инициировать запросы к указанным в документе хостам. Уровень опасности — средний (CVSS 6.5).
Подробности
FopProducer преобразует входящее сообщение XSL-FO, создавая фабрику через TransformerFactory.newInstance() и включая только FEATURE_SECURE_PROCESSING перед выполнением identity-преобразования над телом сообщения. Встроенный в JDK трансформер при включении этого флага сам по себе сбрасывает лимиты accessExternalDTD и accessExternalStylesheet, поэтому внешние DTD и сущности отклоняются. Однако если на classpath находится сторонняя реализация, например Saxon-HE, TransformerFactory.newInstance() возвращает именно её, а FEATURE_SECURE_PROCESSING в одиночку не ограничивает доступ к внешним ресурсам в такой реализации. В результате объявленные в XSL-FO документе DOCTYPE с внешним подмножеством или внешняя общая сущность разрешаются и раскрываются при преобразовании тела. Практическое следствие: внешний отправитель, чей XSL-FO попадает в fop producer, может прочитать файлы, доступные процессу Camel, и заставить процесс выполнить запросы к хостам, указанным в документе. Уязвимости присвоен идентификатор CVE-2026-91858 и оценка CVSS 6.5 (MEDIUM). Важно отметить: сам camel-fop не поставляет такую фабрику и исключает Xalan, поэтому развёртывание по умолчанию со встроенным трансформером JDK не подвержено проблеме — она достижима только там, где другой компонент разместил на classpath альтернативную реализацию JAXP TransformerFactory. Затронуты версии Apache Camel линии 4.14.x и более ранние; они достигли окончания жизненного цикла до устранения проблемы и исправлений не получат.Что делать
Обновите Apache Camel до версии, в которой устранена CVE-2026-91858: ветки 4.14.x и более ранние исправлений не получат, поэтому необходимо перейти на поддерживаемую линию. Если обновление невозможно, рассмотрите митигации: исключите сторонние реализации JAXP TransformerFactory с classpath там, где они не требуются, либо явно настройте ограничения доступа к внешним ресурсам (accessExternalDTD и accessExternalStylesheet) для используемой фабрики. Дополнительно ограничьте возможность недоверенных отправителей достигать fop producer и проверьте, какие компоненты (camel-xslt-saxon, camel-saxon) добавляют альтернативный трансформер в ваше приложение. Итог: уязвимость не затрагивает типовые развёртывания camel-fop со встроенным трансформером JDK, но в конфигурациях со сторонним JAXP TransformerFactory недоверенный XSL-FO может привести к чтению локальных файлов и исходящим запросам. Рекомендуется обновить Apache Camel до поддерживаемой версии или применить указанные митигации.Источник: CVE Project (cvelistV5)
