CVE-2025-47277
vLLM Allows Remote Code Execution via PyNcclPipe Communication Service
En resumen
vLLM versiones 0.6.5 a 0.8.4 que utilizan PyNcclPipe para procesamiento distribuido en GPUs aceptan y ejecutan código no confiable de la red porque su servicio de comunicación escucha en todas las interfaces de red en lugar de solo una privada, permitiendo que atacantes ejecuten código arbitrario en el servidor.
Detalle técnico
CVE-2025-47277 explota enlace de red inadecuado en el mecanismo de transferencia de caché KV de PyNcclPipe (CWE-502: deserialización de datos no confiables). La interfaz TCPStore, destinada a escuchar solo en una interfaz privada especificada mediante `--kv-ip`, se vincula a todas las interfaces por defecto debido al comportamiento de PyTorch. Un atacante en la red puede enviar objetos serializados maliciosos al servicio de comunicación expuesto, logrando ejecución remota de código en el contexto del proceso vLLM. Mitigación disponible en versión 0.8.5+.
Resumen generado y traducido por IA a partir de la descripción oficial.
vLLM, an inference and serving engine for large language models (LLMs), has an issue in versions 0.6.5 through 0.8.4 that ONLY impacts environments using the `PyNcclPipe` KV cache transfer integration with the V0 engine. No other configurations are affected. vLLM supports the use of the `PyNcclPipe` class to establish a peer-to-peer communication domain for data transmission between distributed nodes. The GPU-side KV-Cache transmission is implemented through the `PyNcclCommunicator` class, while CPU-side control message passing is handled via the `send_obj` and `recv_obj` methods on the CPU side. The intention was that this interface should only be exposed to a private network using the IP address specified by the `--kv-ip` CLI parameter. The vLLM documentation covers how this must be limited to a secured network. The default and intentional behavior from PyTorch is that the `TCPStore` interface listens on ALL interfaces, regardless of what IP address is provided. The IP address given was only used as a client-side address to use. vLLM was fixed to use a workaround to force the `TCPStore` instance to bind its socket to a specified private interface. As of version 0.8.5, vLLM limits the `TCPStore` socket to the private interface as configured.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H