
# Docker-среда для эксплуатации уязвимости обхода аутентификации CVE-2012-2122 в MySQL/MariaDB Демонстрирует ошибку сравнения паролей, позволяющую войти с неверными учётными данными.
При подключении к MariaDB/MySQL введённый пароль сравнивается с ожидаемым правильным паролем. Из-за некорректной обработки даже если memcmp() возвращает ненулевое значение, MySQL считает два пароля одинаковыми. Иными словами, достаточно знать имя пользователя, чтобы, перебирая пароли, напрямую войти в базу данных SQL.
Затронутые версии:
Ссылки:
Как показало тестирование, хотя данное окружение работает внутри контейнера, возможность воспроизведения уязвимости всё же в некоторой степени зависит от хост-системы. В качестве хост-системы лучше всего использовать Ubuntu или Mac, однако неизвестно, приведёт ли это к гарантированному успеху. Будем рады, если вы опубликуете дополнительные результаты тестирования в Issue.
Выполните следующую команду для запуска тестового окружения:
docker-compose up -d
После запуска окружения будет поднят сервис Mysql (версия: 5.5.23), прослушивающий порт 3306. Войти можно с помощью обычного клиента Mysql; правильный пароль для root — 123456.
Не зная правильного пароля нашего окружения, выполните в bash следующую команду — после некоторого количества попыток вход будет выполнен успешно:
for i in `seq 1 1000`; do mysql -uroot -pwrong -h your-ip -P3306 ; done

Дополнительные способы тестирования и эксплуатации см. по ссылкам выше.