本仓库包含一个基于 ubuntu 22 的 ros2 iron 易受攻击 Docker 镜像及对应的漏洞利用程序。我们利用 fastrtps 版本 2.10.3 中的漏洞,通过堆缓冲区溢出实现对远程订阅者的拒绝服务攻击。
Fast RTPS 2.10.3 版本及其依赖项在 Docker 容器中从 target 文件夹内的源码构建,并安装了 ros iron。
免责声明:此漏洞并非由我们发现,且已在 Fastdds 和 ros2 iron 的上游仓库中修复。该漏洞仅为研究目的而复现。本仓库包含的概念验证代码旨在帮助安全研究者在受控环境中复现并理解该漏洞。请勿在生产系统或您不拥有、未经明确授权测试的系统上运行此代码。
可执行文件 exploit(即 src/exploit.py 文件)会对启动后观察到的下一条数据消息实现 DoS。您可以添加输入参数来指定受攻击的 ros 话题(默认为 '/chatter')。
该脚本会等待话题上的下一条消息(在所有接口上,'lo' 除外),然后对其进行篡改并重新发送给原始目标。
可使用 prepare_exploit.sh 脚本生成漏洞利用可执行文件。
攻击要求:
std_msgs/Float32MultiArray。