
Docker-базированная proof-of-concept, демонстрирующая CVE-2025-23320 в inference-сервере NVIDIA Triton, эксплуатирующая утечку ключей разделяемой памяти для запуска выхода за границы буфера при записи через состояние гонки unregister/register.
Демонстрация CVE-2025-23320
Этот репозиторий воспроизводит CVE-2025-23320, демонстрируя CWE-209, генерацию сообщения об ошибке, содержащего конфиденциальную информацию (оценка CVSS: 7.5). Эта уязвимость существует на всех серверах вывода NVIDIA Triton версии 25.06 и более ранних.
Эта docker-среда запускает сеть, содержащую сервер вывода NVIDIA Triton и атакующий клиент. Эта среда также гарантирует, что клиент работает на Linux, поэтому CVE воспроизводим на всех операционных системах.
Для сборки/запуска
docker compose --build-no-cache
Если это первый запуск, это может занять некоторое время, так как извлекается образ сервера NVIDIA Triton версии 25.06 из github
Затем:
docker compose up
POC
Скрипт атакующего клиента запускается автоматически, выводя сообщение об ошибке в форме: Failed to increase the shared memory pool size for key 'triton_python_backend_shm_region_8a463f1a-fcd6-4c1b-b4b5-df63f9c512ad' to 54525952 bytes.
После получения этого ключа атакующий может выполнить множество действий. В нашей реализации кода атакующий использовал API unregister от Triton. Поскольку Triton не проверяет, кто вызывает этот API, функция будет выполнена. Если атакующий впоследствии использует функцию register, успешно вызывая состояние гонки, это приведет к записи за пределами границ (OOB).