基于检索的语音转换 WebUI 中存在多个漏洞
总结
Retrieval-based-Voice-Conversion-WebUI 容易受到命令行注入的攻击
项目
基于检索的语音转换 WebUI
问题 1:infer-web.py 中的命令注入preprocess_dataset (GHSL-2025-012)
变量 、 和 获取用户输入并将其传递给函数,该函数将它们连接成在服务器上运行的命令。这可能导致任意命令执行。exp_dir1np7trainset_dir4sr2preprocess_dataset
def preprocess_dataset(trainset_dir, exp_dir, sr, n_p):
sr = sr_dict[sr]
os.makedirs("%s/logs/%s" % (now_dir, exp_dir), exist_ok=True)
f = open("%s/logs/%s/preprocess.log" % (now_dir, exp_dir), "w")
f.close()
cmd = '"%s" infer/modules/train/preprocess.py "%s" %s %s "%s/logs/%s" %s %.1f' % (
config.python_cmd,
trainset_dir,
sr,
n_p,
now_dir,
exp_dir,
config.noparallel,
config.preprocess_per,
)
冲击
此问题可能会导致任意命令执行。
CWEs
- CWE-77:命令中使用的特殊元素的不当中和(“命令注入”)
问题 2:infer-web.py 中的命令注入extract_f0_feature (GHSL-2025-013)
变量 ,并获取用户输入并将其传递给函数,函数将它们连接成在服务器上运行的命令。这可能导致任意命令执行。请注意,这些命令在函数中多次运行,并且必须修复所有这些命令以防止命令行注入:exp_dir1np7f0method8extract_f0_featureextract_f0_feature
- https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/7ef19867780cf703841ebafb565a4e47d1ea86ff/infer-web.py#L276-L278
- https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/7ef19867780cf703841ebafb565a4e47d1ea86ff/infer-web.py#L307-L309
- https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/7ef19867780cf703841ebafb565a4e47d1ea86ff/infer-web.py#L330-L332
- https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/7ef19867780cf703841ebafb565a4e47d1ea86ff/infer-web.py#L373-L375
def extract_f0_feature(gpus, n_p, f0method, if_f0, exp_dir, version19, gpus_rmvpe): gpus = gpus.split("-") os.makedirs("%s/logs/%s" % (now_dir, exp_dir), exist_ok=True) f = open("%s/logs/%s/extract_f0_feature.log" % (now_dir, exp_dir), "w") f.close() if if_f0: if f0method != "rmvpe_gpu": cmd = ( '"%s" infer/modules/train/extract/extract_f0_print.py "%s/logs/%s" %s %s' % ( config.python_cmd, now_dir, exp_dir, n_p, f0method, ) ) logger.info("Execute: " + cmd)

最低0.47元/天 解锁文章
1498

被折叠的 条评论
为什么被折叠?



