Почему уязвимости «тянутся» годами?
До окончания срока развития Camunda 7 остается совсем чуть-чуть (EOL 14.10.2025) при этом в актуальной сборке BPM-движка от этого иностранного вендора до сих пор присутствуют уязвимости, выявленные и проклассифицированные 5-10 лет назад. Почему же так происходит?
Чтобы ответить на этот вопрос желательно сначала получить более подробное описание по выявленным уязвимостям. При этом сам термин CVE (англ. Common Vulnerabilities and Exposures) обозначает базу данных общеизвестных уязвимостей информационной безопасности. В этой базе каждой из уязвимостей присвоен идентификационный номер вида CVE-год-номер, приведено краткое описание и ряд общедоступных ссылок с подробностями.
Код
Краткое описание
CVE-2016-4000
Ошибка в коде зависимой библиотеки Jython позволяет злоумышленникам выполнять произвольный код через специально созданный сериализованный объект. Предположение о том, что код в десериализованном объекте корректен, опасно и может привести к эксплуатации этой уязвимости. Злоумышленники могут изменять непредвиденные объекты или данные, которые считались безопасными для модификации. Последствия могут быть самыми разными, поскольку зависят от того, какие объекты или методы десериализуются и как они используются в дальнейшем.
CVE-2020-1945
Множественные уязвимости в зависимых библиотеках из состава Oracle Retail Back Office связаны с неверными разрешениями, выставленными по умолчанию. Уязвимость позволяет локальному пользователю повышать привилегии в системе и существует из-за того, что Apache Ant использует временный каталог по умолчанию, определяемый системным свойством Java java.io.tmpdir, для нескольких задач, что может привести к утечке конфиденциальной информации.
CVE-2020-8908
Множественные уязвимости в зависимых библиотеках из состава JBoss Enterprise Application Platform. Уязвимость существует из-за некорректных разрешений по умолчанию для файлов, расположенных во временном каталоге, установленных функцией Guava com.google.common.io.Files.createTempDir(). Уязвимость позволяет локальному пользователю повышать привилегии в системе.
CVE-2021-36373
Множественные уязвимости в зависимых библиотеках из состава Apache Ant. Позволяют злоумышленнику провести обход ограничений безопасности и добиться компрометация всей системы. Вызваны ошибкой в коде, связанной с тем, что при чтении специально созданного архива TAR сборка Apache Ant может выделить большой объём памяти, что в конечном итоге приведёт к ошибке нехватки памяти, даже при небольшом объёме входных данных.
CVE-2023-2976
Ошибки в коде зависимых библиотек из состава Google Guava приводит к тому, что использование временного каталога Java по умолчанию для создания файлов в классе `FileBackedOutputStream` в системах Unix и Android Ice Cream Sandwich позволяет другим пользователям и приложениям на компьютере, имеющим доступ к временному каталогу Java по умолчанию, получать доступ ко всем файлам, созданным этим классом в обход возможных ограничений.
CVE-2025-48924
Ошибка в коде зависимых библиотек из состава Apache Commons Lang привела к уязвимости неконтролируемой рекурсии. Так метод ClassUtils.getClass(...) может вызывать StackOverflowError при очень длинных входных данных. Поскольку эта ошибка обычно не обрабатывается приложениями и библиотеками, StackOverflowError может привести к внезапному завершению и перехвату работы приложения.
Из описаний видно, что практически все они связаны со старыми версиями библиотек из состава крупных корпоративных пакетов. Но почему же тогда вендор не спешит обновить эти зависимости на новые версии библиотек? Скорее всего, ответ кроется в том, что программный код Camunda 7 CE является наследником кодовой базы Camunda 7 Enterprise. И на этой Enterprise версии в мире работает несколько очень крупных клиентов, у которых на продуктовом контуре достаточно старое инфраструктурное окружение, и вендор, в лице Camunda, вынужден во всех своих новых сборках обеспечивать обратную совместимость с этим устаревшим окружением.

А для новых «форков» кодовой базы Camunda 7 такую совместимость обеспечивать нет необходимости, поэтому появляется возможность не только поднять версии зависимых библиотек, но и провести рефакторинг, освободив программный код BPM-движка от поддержки морально устаревших технологий (таких как старые версии серверов приложений WebLogic и Wildfly/JBoss, Java EE и Spring 5). Тем самым повысив надежность и обеспечив потенциал для дальнейшего развития.

В РФ методология РБПО предполагает важнейшей частью композиционный анализ (анализ цепочки поставок), а также статический анализ (который всю эту цепочку проверяет). Для этого создаются строго контролируемые на изменения артефактов репозитории в которые первоначально копируются open-source проекты, “фиксятся” по уязвимостям и уже потом только из этих репозиториев осуществляются сборки.