
このリポジトリには、ubuntu 22 をベースとした ros2 iron の脆弱性を含む Docker イメージと、それに対応するエクスプロイトが含まれています。fastrtps バージョン 2.10.3 の脆弱性を悪用し、ヒープバッファオーバーフローを介してリモートサブスクライバーのサービス拒否(DoS)を可能にします。
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 のようなリストを含むすべてのタイプでのみ機能します