CVE-2015-5317
Jenkins Jenkins User Interface (UI)
2023-05-12
Jenkins User Interface (UI) contains an information disclosure vulnerability that allows users to see the names of jobs and builds otherwise inaccessible to them on the "Fingerprints" pages.
Технический анализ и план устранения
Суть уязвимости
CVE-2015-5317 представляет собой уязвимость раскрытия информации (Information Disclosure) в пользовательском интерфейсе Jenkins. Проблема заключается в некорректной проверке прав доступа на страницах «Fingerprints» (отпечатки файлов).
Пользователи, имеющие доступ к системе, могут просматривать имена заданий (jobs) и номера сборок (builds), к которым у них нет прямого разрешения на просмотр (Read permission). Это происходит, когда артефакты из защищенных проектов имеют те же контрольные суммы (MD5), что и файлы в проектах, доступных пользователю. Злоумышленник может использовать перебор или анализ зависимостей для получения структуры закрытых проектов.
Как исправить
Основным и рекомендуемым способом устранения уязвимости является обновление Jenkins до версии, в которой была исправлена логика проверки прав доступа на страницах Fingerprints.
- Обновите Jenkins (LTS) до версии 1.625.3 или выше.
- Обновите Jenkins (Weekly) до версии 1.640 или выше.
Процесс обновления (для систем на базе Debian/Ubuntu):
apt-get update
apt-get install jenkins
После обновления необходимо перезапустить сервис:
systemctl restart jenkins
Если вы используете Jenkins в виде .war файла, скачайте актуальную версию с официального сайта и замените старый файл:
wget https://updates.jenkins.io/latest/jenkins.war
Временные меры
Если немедленное обновление невозможно, рекомендуется применить следующие настройки для снижения риска:
- Ограничение доступа на уровне сетевого экрана или Reverse Proxy (Nginx/Apache) к эндпоинтам, содержащим
/fingerprint/. - Пересмотр стратегии безопасности (Matrix Authorization Strategy). Убедитесь, что анонимным пользователям запрещен любой доступ к системе.
- Отключение функции записи отпечатков (Fingerprinting) в настройках критически важных заданий, если их имена являются конфиденциальными.
- Использование плагина Role-based Strategy для более гранулярного контроля доступа, хотя это не устраняет корень проблемы в уязвимых версиях, но может усложнить эксплуатацию.