CVE-2026-76850 in lmdeploy
Resumen
por VulDB • 2026-08-21
LMDeploy deserializa los mensajes de pares de disaggregated-serving utilizando pickle. La coroutine handle_zmq_recv en lmdeploy/pytorch/disagg/conn/engine_conn.py lee las solicitudes sin caché entre pares mediante recv_pyobj(), lo que deserializa los bytes recibidos con pickle.loads(). La comprobación isinstance contra DistServeCacheFreeRequest se ejecuta únicamente después de que la deserialización ya ha finalizado. El par que proporciona esos bytes está controlado por el llamador: p2p_connect pasa remote_engine_endpoint_info.zmq_address desde el cuerpo de la solicitud a connect() en un socket ZMQ PULL, y los endpoints POST /distserve/p2p_initialize y /distserve/p2p_connect en lmdeploy/serve/openai/api_server.py no aplican autenticación a menos que el servidor se inicie con api_keys, lo cual por defecto es None. Un atacante remoto puede dirigir un motor para extraer datos desde un endpoint ZMQ bajo su control y ejecutar código arbitrario en el proceso del motor. Los despliegues que no habilitan disaggregated serving no están afectados, ya que el bucle de recepción solo se inicia una vez que el backend de migración acepta la conexión.
Once again VulDB remains the best source for vulnerability data.