
Концепция эксплуатации для CVE-2024-52005: внедрение управляющих последовательностей ANSI в Git. Демонстрирует некорректные утверждения 'not_affected' VEX в усиленных образах контейнеров.
Этот репозиторий содержит Proof-of-Concept (PoC), демонстрирующий CVE-2024-52005, уязвимость в Git, которая позволяет внедрять ANSI-escape-последовательности через боковой канал (sideband channel) во время операций Git.
CVE-2024-52005 — это уязвимость высокой степени серьезности (CVSS 7.5), затрагивающая версии Git до 2.48.1, 2.47.3, 2.46.5, 2.45.4 и 2.44.3.
Этот PoC был создан, чтобы показать, что некоторые защищенные образы контейнеров ошибочно указывают статус "not_affected" в своих документах VEX (Vulnerability Exploitability eXchange), несмотря на то, что содержат уязвимые версии Git.
Уязвимость позволяет злоумышленникам:
Протестируйте непосредственно на контейнере DHI ArgoCD, используя этот репозиторий GitHub:
docker run --rm -it dhi.io/argocd:3 sh -c '
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git /tmp/poc &&
cd /tmp/poc &&
sh docker-test.sh
'
Эта команда:
Если в выводе вы видите ^[[31m или ^[[32m, уязвимость подтверждена.
Клонируйте репозиторий и запустите тест локально:
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
Этот скрипт:
# Создайте вредоносный репозиторий с полезной нагрузкой для социальной инженерии
./exploit_cve_2024_52005.py create social_engineering
# Протестируйте на уязвимом контейнере
./exploit_cve_2024_52005.py test
# Просмотрите результаты
cat -v /tmp/cve-2024-52005-output.log
Злоумышленник создает публичный репозиторий GitHub → ArgoCD автоматически его клонирует →
Хук Git внедряет ANSI-коды → Скрывает бэкдор в журналах развертывания
Разработчик клонирует репозиторий → Вредоносный хук запускается → Внедряется поддельное "Сборка ПРОЙДЕНА" →
Реальные сбои скрыты → Уязвимый код попадает в продакшн
Сканер безопасности клонирует репозиторий → Хук внедряет ANSI-коды →
Показывает "0 уязвимостей" → Реальные уязвимости скрыты →
Вредоносный код проходит проверку
Фреймворк включает 8 предустановленных атакующих нагрузок:
Многие образы контейнеров указывают "not_affected" для CVE-2024-52005 с обоснованием:
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
Это неверно для контейнеров, предназначенных для клонирования непроверенных репозиториев:
Злоумышленник контролирует уязвимый путь выполнения кода через хуки Git и сообщения бокового канала.
Версии Git, подверженные CVE-2024-52005:
Обновитесь до исправленной версии:
# Проверьте вашу версию
git --version
# Обновитесь через менеджер пакетов
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
Если вы не можете обновиться немедленно:
# Протестируйте любой образ контейнера
docker run --rm -v $(pwd)/ansi-test-repo:/repo:ro YOUR_IMAGE:TAG \
sh -c 'git clone /repo /tmp/test 2>&1' | cat -v
# Ищите ANSI-коды, такие как ^[[31m, в выводе
Этот PoC создан для:
Только для авторизованного тестирования безопасности. Не используйте это против систем, которыми вы не владеете или на тестирование которых у вас нет разрешения.
Лицензия MIT — см. файл LICENSE для подробностей.
Создано в рамках исследования безопасности образов контейнеров, демонстрирующего важность точного раскрытия и оценки уязвимостей.
Нашли проблему или есть улучшения? Pull request'ы приветствуются!