Могут ли уязвимости в транзитивных зависимостях быть использованы в атаке?

Вопрос или проблема

Я запускаю 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 в его зависимостях, вызывает вопросы о его безопасности.

Ответ или решение

Да, уязвимости в транзитивных зависимостях могут быть эксплуатируемыми, однако важно учитывать несколько факторов перед принятием решения о тестировании на уязвимость.

  1. Существование транзитивных зависимостей: Не все транзитивные зависимости обязательно используются в проекте. Некоторые из них могут быть указаны только для сборки или тестирования, но не включены в конечный артефакт, который разворачивается на сервере.

  2. Использование уязвимых зависимостей: Даже если транзитивная зависимость присутствует в развернутом приложении, она может не использоваться или использоваться таким образом, что не вызывает уязвимость. Например, если уязвимость связана с определенной функцией, и эта функция не вызывается во время выполнения, то уязвимость может быть неактуальной.

  3. Степень уязвимости: Некоторые уязвимости могут требовать специфических условий для эксплоатации, таких как особый набор параметров или специальные условия среды. Поэтому даже наличие уязвимости в транзитивной зависимости не гарантирует успешную атаку.

  4. Обеспечение безопасности: Важно помнить, что если сервер сообщает о том, какие версии библиотек он использует, это вызывает вопросы о его безопасности. Даже если вы не планируете тестировать на уязвимости, стоит провести аудит всех зависимостей и рассмотреть возможность их обновления до последней стабильной версии, чтобы минимизировать риски.

  5. Тестирование и этика: Если вы планируете тестировать сервер на наличие уязвимостей, убедитесь, что это сделано с разрешением владельца сервера и в рамках этических норм. Неправомерное тестирование может привести к юридическим последствиям.

В данном случае, приведенные CVE (CVE-2024-26308, CVE-2024-25710, CVE-2023-2976, CVE-2020-8908) могут представлять потенциальные угрозы, но их эксплоатация зависит от контекста применения этих уязвимостей в вашем случае. Рекомендуется провести дополнительное исследование и анализ окружения перед попытками каких-либо тестов или атак.

Оцените материал
Добавить комментарий

Капча загружается...