CVE-2022-36804
Atlassian Bitbucket Server and Data Center
2022-09-30
Multiple API endpoints of Atlassian Bitbucket Server and Data Center contain a command injection vulnerability where an attacker with access to a public Bitbucket repository, or with read permissions to a private one, can execute code by sending a malicious HTTP request.
Технический анализ и план устранения
Суть уязвимости
CVE-2022-36804 представляет собой критическую уязвимость типа Command Injection (инъекция команд) в нескольких API-эндпоинтах Atlassian Bitbucket Server и Data Center. Проблема возникает из-за недостаточной фильтрации входных данных в параметрах запроса, которые передаются напрямую в команды Git на стороне сервера.
Злоумышленник, имеющий доступ к публичному репозиторию или права на чтение приватного репозитория, может отправить специально сформированный HTTP-запрос и выполнить произвольный код в контексте пользователя, от имени которого запущен сервис Bitbucket. Уязвимость имеет оценку CVSS 9.9.
Как исправить
Единственным надежным способом устранения уязвимости является обновление Bitbucket до исправленной версии. Выберите соответствующую версию в зависимости от вашей текущей ветки:
- Скачайте актуальный дистрибутив с официального сайта Atlassian.
- Создайте резервную копию базы данных и домашней директории (BITBUCKET_HOME).
- Установите обновление для вашей версии:
- Если вы используете 7.x: обновитесь до 7.6.17, 7.17.10, 7.21.4 или выше.
- Если вы используете 8.x: обновитесь до 8.0.3, 8.1.3, 8.2.2, 8.3.1 или выше.
Команда для проверки текущей версии (в Linux):
grep "bitbucket.version" /opt/atlassian/bitbucket/bin/version.sh
Временные меры
Если немедленное обновление невозможно, примените следующие меры для снижения риска:
-
Отключите возможность публичного просмотра репозиториев (Public Access), чтобы ограничить круг лиц, способных эксплуатировать уязвимость без аутентификации.
-
Если вы используете Bitbucket Mesh, его необходимо обновить отдельно до исправленной версии.
-
Настройте правила на Web Application Firewall (WAF) для блокировки подозрительных запросов к API, содержащих символы инъекции команд в параметрах (например,
--exec,..). -
В качестве экстренной меры (если обновление недоступно) можно временно ограничить доступ к HTTP-протоколу для Git, оставив только SSH, однако это может не полностью закрыть все векторы через REST API.