
Демонстрация использования уязвимости Fastrtps-DDS CVE-2024-28231 в Ros2
Этот репозиторий содержит уязвимый Docker-образ ros2 iron на основе ubuntu 22 и соответствующий эксплойт. Мы эксплуатируем уязвимость в fastrtps версии 2.10.3, позволяющую осуществить отказ в обслуживании удаленного подписчика через переполнение буфера в куче.
Fast RTPS версии 2.10.3 и зависимости собираются из исходных кодов в папке target внутри Docker-контейнера, а также устанавливается ros iron.
Отказ от ответственности: Данная уязвимость была обнаружена не нами и уже исправлена в вышестоящем репозитории Fastdds и ros2 iron. Эта уязвимость была воспроизведена в исследовательских целях. Данный репозиторий содержит код proof-of-concept, предназначенный для специалистов по безопасности, чтобы они могли воспроизвести и понять уязвимость в контролируемой среде. Не запускайте этот код на производственных системах или системах, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.
Исполняемый файл exploit, точнее файл src/exploit.py, реализует DoS для следующего сообщения данных, которое он увидит после запуска. Вы можете добавить аргумент, чтобы указать атакуемый топик ros (по умолчанию это топик '/chatter').
Скрипт ожидает следующее сообщение в топике (на всех интерфейсах, кроме 'lo'), затем модифицирует его и отправляет обратно исходному получателю.
Скрипт prepare_exploit.sh можно использовать для генерации исполняемого файла эксплойта.
Требования для атаки:
std_msgs/Float32MultiArray.