torch.load during CosyVoice gRPC server startupMITRE service request: 1988723
Status: RESERVED (pending a qualifying public reference per CNA Rules §5.3).
CosyVoice thru commit 6e01309e01bc93bbeb83bdd996b1182a81aaf11e (2025-30-21) contains an insecure deserialization vulnerability (CWE-502) in its gRPC server component. When the server starts, it loads the speech synthesis model from a user-specified directory using torch.load() without enabling the weights_only=True security parameter. This allows the deserialization of arbitrary Python objects via the pickle module. An attacker can exploit this by providing malicious model files within a directory. When a victim starts the gRPC server pointing to this directory, arbitrary code is executed on the victim’s system during server initialization.
Starting the CosyVoice gRPC service with --model_dir pointing at a poisoned bundle executes malicious pickle during CosyVoiceServiceImpl construction—RCE before any client connects.
6e01309e01bc93bbeb83bdd996b1182a81aaf11e.CosyVoiceModel.torch.load on llm.pt, flow.pt, hift.pt without hardened mode.High for production voice APIs loading third-party models.