
Demonstration der Nutzung der Fastrtps-DDS-Schwachstelle CVE-2024-28231 in Ros2
Dieses Repository enthält ein verwundbares Docker-Image von ros2 iron basierend auf ubuntu 22 und einen passenden Exploit. Wir nutzen die Schwachstelle in fastrtps Version 2.10.3 aus, die einen Denial-of-Service eines entfernten Abonnenten durch einen Heap-Pufferüberlauf ermöglicht.
Fast RTPS Version 2.10.3 und die Abhängigkeiten werden im Ordner target in einem Docker-Container aus dem Quellcode erstellt, und ros iron wird installiert.
Haftungsausschluss: Diese Schwachstelle wurde nicht von uns gefunden und ist bereits im Upstream-Repository von Fastdds und ros2 iron gepatcht. Diese Schwachstelle wurde zu Forschungszwecken reproduziert. Dieses Repository ist ein Proof-of-Concept-Code, der Sicherheitsforschern dazu dient, die Schwachstelle in einer kontrollierten Umgebung zu reproduzieren und zu verstehen. Führen Sie diesen Code nicht auf Produktionssystemen oder Systemen aus, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben.
Das ausführbare exploit-Programm bzw. die Datei src/exploit.py führt einen DoS für die nächste Datennachricht herbei, die es nach dem Start beobachtet. Sie können eine Eingabe hinzufügen, um die angegriffene ROS-Topic anzugeben (Standard ist '/chatter').
Das Skript wartet auf die nächste Nachricht auf dem Topic (auf allen Schnittstellen außer 'lo') und manipuliert und sendet sie dann erneut an das ursprüngliche Ziel.
Mit dem Skript prepare_exploit.sh kann das Exploit-Programm erzeugt werden.
Anforderungen für den Angriff:
std_msgs/Float32MultiArray.