
Prova de conceito baseada em Docker demonstrando a CVE-2025-23320 no servidor de inferência NVIDIA Triton, explorando o vazamento de chaves de memória compartilhada para acionar uma gravação fora dos limites por meio de condição de corrida de cancelamento/registro de registro.
Demonstrando o CVE-2025-23320
Este repositório replica o CVE-2025-23320, demonstrando o CWE-209, Geração de Mensagem de Erro Contendo Informações Sensíveis (Pontuação CVSS: 7.5). Esta vulnerabilidade existe em todos os servidores de inferência NVIDIA Triton 25.06 e anteriores.
Esta configuração docker executa uma rede contendo um servidor de inferência NVIDIA Triton e um cliente atacante. Este ambiente também garante que o cliente seja executado em linux, para que o CVE seja replicável em todos os sistemas operacionais.
Para construir/executar
docker compose --build-no-cache
se esta for a primeira execução, isso pode demorar um pouco, pois baixa a imagem do servidor NVIDIA Triton versão 25.06 do github
Em seguida:
docker compose up
POC
O script do cliente atacante é executado automaticamente, gerando uma mensagem de erro no formato: Failed to increase the shared memory pool size for key 'triton_python_backend_shm_region_8a463f1a-fcd6-4c1b-b4b5-df63f9c512ad' to 54525952 bytes.
Após obter esta chave, um atacante pode realizar inúmeras ações. Na nossa implementação de código, o atacante utilizou a API unregister do Triton. Como o Triton não verifica quem está invocando esta API, a função será executada. Se o atacante subsequentemente usar a função register, acionando com sucesso uma condição de corrida, isso resultará em uma escrita fora dos limites (OOB).