Вопрос или проблема
Я запускаю nmap на http-сервере и получил версию netty, используемую сервером. Используемая версия netty 9.4.53.v20231009. Я попытался найти в интернете CVE, связанные с этой версией, и кажется, что эта версия не связана напрямую с CVE (ссылка: https://security.snyk.io/package/maven/org.eclipse.jetty:jetty-server/9.4.53.v20231009).
При проверке на mvn говорится, что есть CVE, возникающие из транзитивных зависимостей, поэтому у меня вопрос: могут ли эти CVE быть эксплуатируемыми? Стоит ли мне пытаться эксплуатировать этот http-сервер, используя транзитивные CVE?
Транзитивные CVE:
- CVE-2024-26308
- CVE-2024-25710
- CVE-2023-2976
- CVE-2020-8908
Ссылка: https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-distribution/9.4.53.v20231009
Потенциально, да. Но есть ряд причин, почему это может не так. Например:
- Транзитивная зависимость может не быть развернутой; возможно, она была зависимостью для тестирования или сборки, или, возможно, зависимость была удалена или заменена во время развертывания
- Зависимость может не использоваться или не используется таким образом, который экспонирует уязвимость
В общем, тот факт, что сервер говорит вам, на чем он работает, и тот факт, что он работает на версии с CVE в его зависимостях, вызывает вопросы о его безопасности.
Ответ или решение
Да, уязвимости в транзитивных зависимостях могут быть эксплуатируемыми, однако важно учитывать несколько факторов перед принятием решения о тестировании на уязвимость.
-
Существование транзитивных зависимостей: Не все транзитивные зависимости обязательно используются в проекте. Некоторые из них могут быть указаны только для сборки или тестирования, но не включены в конечный артефакт, который разворачивается на сервере.
-
Использование уязвимых зависимостей: Даже если транзитивная зависимость присутствует в развернутом приложении, она может не использоваться или использоваться таким образом, что не вызывает уязвимость. Например, если уязвимость связана с определенной функцией, и эта функция не вызывается во время выполнения, то уязвимость может быть неактуальной.
-
Степень уязвимости: Некоторые уязвимости могут требовать специфических условий для эксплоатации, таких как особый набор параметров или специальные условия среды. Поэтому даже наличие уязвимости в транзитивной зависимости не гарантирует успешную атаку.
-
Обеспечение безопасности: Важно помнить, что если сервер сообщает о том, какие версии библиотек он использует, это вызывает вопросы о его безопасности. Даже если вы не планируете тестировать на уязвимости, стоит провести аудит всех зависимостей и рассмотреть возможность их обновления до последней стабильной версии, чтобы минимизировать риски.
-
Тестирование и этика: Если вы планируете тестировать сервер на наличие уязвимостей, убедитесь, что это сделано с разрешением владельца сервера и в рамках этических норм. Неправомерное тестирование может привести к юридическим последствиям.
В данном случае, приведенные CVE (CVE-2024-26308, CVE-2024-25710, CVE-2023-2976, CVE-2020-8908) могут представлять потенциальные угрозы, но их эксплоатация зависит от контекста применения этих уязвимостей в вашем случае. Рекомендуется провести дополнительное исследование и анализ окружения перед попытками каких-либо тестов или атак.