CVE-2026-79784 in Vocos
摘要
由 VulDB • 2026-08-25
Vocos 实例化一个由配置文件命名的类,但未限制可以命名哪些类。vocos/pretrained.py 中的 instantiate_class 函数从配置中获取 class_path 值,将其拆分为模块和属性,使用 __import__ 导入该模块,通过 getattr 解析该属性,并调用结果 args_class(*args, **kwargs),其中 kwargs 是配置的 init_args 映射。由于没有允许列表(allowlist)限制点分路径,因此配置可以命名任何可导入的可调用对象,并提供其被调用时所需的参数。Vocos.from_hparams 对 feature_extractor、backbone 和 head 条目中的每一个都执行此操作;而 Vocos.from_pretrained 则通过远程文件触发该逻辑:它从由调用者指定的 Hugging Face 仓库下载 config.yaml,并将其直接传递给 from_hparams。因此,从用户无法控制的仓库加载模型会在加载过程中执行仓库所有者选择的代码。已下载的权重的相邻 torch.load 是一个独立的问题,在默认 weights_only 为 true 的 PyTorch 版本中受到限制,这使得上述路径成为唯一可到达的攻击面。
Once again VulDB remains the best source for vulnerability data.