Skip to content

iotsrg/awesome-ros-security

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Awesome ROS & Robotics Security

A curated list of ROS / ROS 2 and robotics security resources: tools, checklists, CVEs, SROS2, DDS, AI/perception attacks, research papers, conference talks, and blogs.

Awesome

   


Modern robots run on the Robot Operating System (ROS / ROS 2) and a stack of DDS, embedded Linux, real-time controllers, perception ML models, and industrial fieldbuses. They blur the line between IT, OT, and AI, and they move in the physical world. This list covers the full robotics security landscape: ROS internals, attack surface, pentesting tools, checklists, known CVEs, frameworks, talks, and research.

What makes this list different: every entry has been individually verified against a primary source (NVD for CVEs, arXiv/DOI for papers, vendor docs for tools, conference archives for talks). The git log documents every fabricated entry we found and removed during audit. PRs follow the same standard , see CONTRIBUTING.md.


Table of Contents


Overview

A robot is a cyber-physical system: a network of nodes exchanging sensor and actuation messages over a middleware (ROS, DDS, or vendor-proprietary), running on an embedded OS, often connected to a cloud fleet manager and an industrial network.

A robot compromise is not just data theft. It can crash drones, derail mobile robots into people, or weld where there should not be a weld.

Key facts:

  • ROS is the de-facto open-source robotics middleware, maintained by Open Robotics.
  • ROS 1 was designed without security in mind. It is plaintext, unauthenticated, and trivial to attack on a flat network.
  • ROS 2 uses DDS (Data Distribution Service) as transport. Security is optional via the DDS-Security spec, exposed in ROS 2 as SROS2.
  • The Robot Vulnerability Database (RVD) is the largest robot-specific flaw registry (~241 catalogued flaws plus ~265 tracked ROS 2 bug entries as of 2024; verify current counts on the repo). Maintained by Alias Robotics.

Learn more:


Robot Security Attack Surface

Layer Components Typical Weaknesses
Hardware JTAG, UART, USB, SD, CAN, EtherCAT, I²C, SPI Exposed debug ports, glitching, sensor spoofing
Firmware / OS Embedded Linux (Ubuntu, Yocto), RTOS, bootloader Default creds, world-writable files, missing secure boot
Middleware ROS 1 master, ROS 2 / DDS, MQTT, ZeroMQ No auth (ROS 1), DDS misconfig, plaintext topics
Application ROS nodes, services, parameter server, .launch/.yaml Param poisoning, node spoofing, deserialization bugs
Perception / AI LiDAR, RGB/RGBD cameras, IMU, ML models Adversarial inputs, sensor spoofing, model tampering
Network Wi-Fi, 4G/5G, Ethernet, Bluetooth Open services, weak Wi-Fi, no segmentation from IT/OT
Cloud / Fleet Vendor cloud, web dashboards, REST/MQTT bridges OWASP Top 10, weak API auth, exposed endpoints
Physical / Safety E-stops, safety PLCs, motor controllers Bypassable safety logic, unsafe defaults

ROS 1 vs ROS 2 Security Model

ROS 1: Insecure by Design

  • Central ROS Master on TCP 11311 (XML-RPC).
  • No authentication. Any node on the network can register, subscribe, publish, or de-register others.
  • No encryption. Everything is plaintext over TCPROS/UDPROS.
  • XML-RPC injection and node hijacking are trivial.
  • Mitigations are network-layer only: VPN, VLAN segmentation, IPsec.

ROS 2: Security Optional via SROS2 / DDS-Security

  • Uses DDS (RTPS) which is distributed, no master.
  • DDS Security plugins (Authentication, Access Control, Cryptographic) provide PKI-based identity, signed permissions, AES-GCM encryption.
  • Exposed in ROS 2 as SROS2 CLI tooling: ros2 security create_keystore, create_enclave, etc.
  • Common failures: SROS2 disabled in dev/prod, wrong ROS_DOMAIN_ID, missing access control policies, permissive governance.xml.
  • Reference: SROS2 docs, DDS Security spec (OMG).

Pentesting Tools

ROS / ROS 2 Specific

Tool Purpose Link
ROSPenTo XML-RPC pentest tool for ROS Master & nodes, enumerates and manipulates the ROS graph github.com/jr-robotics/ROSPenTo
ROSploit Two-phase recon + exploit framework for ROS 1 github.com/seanrivera/rosploit
roschaos Chaos engineering / fault injection across the ROS graph github.com/ruffsl/roschaos
Robosploit (Alurity) Robotics exploitation framework by Alias Robotics aliasrobotics.com/alurity.php
HAROS Static analysis framework for ROS C++/Python codebases github.com/git-afsantos/haros
aztarna Footprinting tool for ROS, SROS, industrial routers (archived 2020, but still useful) github.com/aliasrobotics/aztarna
RVD Robot Vulnerability Database (registry + CLI) github.com/aliasrobotics/RVD
RSF (Robot Security Framework) Methodology + tooling for robot assessments github.com/aliasrobotics/RSF
SROS2 CLI Generate keystores, enclaves, governance/permissions XML github.com/ros2/sros2
dds-perftest / shapes_demo DDS reference apps used to validate isolation Fast-DDS docs

Drone / UAV Specific

Tool Purpose Link
dronesploit Pentest framework for drones (Wi-Fi, MAVLink) github.com/dronesploit/dronesploit
MAVProxy MAVLink ground-station; useful for fuzzing autopilots github.com/ArduPilot/MAVProxy
pymavlink Python MAVLink bindings for packet crafting github.com/ArduPilot/pymavlink
MAVLink-Router Routing proxy useful for MITM github.com/mavlink-router/mavlink-router
Skyjack Classic Parrot AR.Drone hijack PoC samy.pl/skyjack
Aircrack-ng Drone Wi-Fi de-auth, WPA capture aircrack-ng.org
GNU Radio SDR baseband for drone telemetry capture gnuradio.org

Exploitation Frameworks

Network, DDS & Protocol Analysis

Hardware Pentesting

Static Analysis & SBOM

Fuzzing

Forensics & Incident Response

Wireshark Dissectors


Robot Pentesting Checklists

1. Network & ROS Graph

  • Identify ROS version (ROS 1 vs ROS 2) and middleware (Fast-DDS, Cyclone, RTI Connext).
  • Scan for ROS Master XML-RPC on TCP 11311.
  • Enumerate all topics, services, parameters: rostopic list, rosservice list, rosparam list.
  • List active nodes and inspect their connections: rosnode list / rosnode info.
  • For ROS 2: probe RTPS discovery on UDP 7400-7500; enumerate participants with ros2 node list, ros2 topic list.
  • Check ROS_DOMAIN_ID segregation and cross-domain leakage.
  • Verify whether SROS2 / DDS-Security is enabled and policies (governance/permissions XML) are signed.
  • Attempt node spoofing: register a malicious node with the Master and intercept topics.
  • Attempt topic poisoning: publish on safety-critical topics (/cmd_vel, /joint_states).
  • Test MITM on TCPROS / RTPS where no encryption is enforced.

2. Hardware

  • Identify and probe JTAG, SWD, UART, USB-OTG, SD card interfaces.
  • Attempt firmware dump via debug interface or SPI flash readout.
  • Probe CAN / CANopen / EtherCAT buses for unauthenticated motion commands.
  • Inspect I²C / SPI sensor lines for tamper / spoofing potential.
  • Check for secure boot, signed firmware, and TPM/secure-element presence.

3. Firmware & OS

  • Fingerprint OS (Ubuntu, Yocto, ROS distro).
  • Test for default or hardcoded credentials (vendor, SSH, web UI).
  • Look for SUID binaries, world-writable dirs, lax sudoers (CWE-276).
  • Check for outdated apt/pip/rosdep packages with known CVEs.
  • Verify SBOM exists and is current; run Syft + Grype.
  • Test for race conditions in init scripts (CWE-362).
  • Inspect /etc/ros/, ~/.ros/, and launch files for hardcoded secrets.

4. Application & ROS Graph (Logic)

  • Parameter server poisoning: read/write sensitive params (/rosparam).
  • Launch file injection: substitute .launch / .yaml to load attacker nodes.
  • Deserialization: fuzz custom .msg parsers (esp. user-defined types).
  • DoS: topic flooding, parameter storms, RTPS announcement spam.
  • Service abuse: enumerate rosservice endpoints for unauthenticated command exec, e-stop bypass, motion override.
  • Check for command injection in service handlers shelling out (os.system, subprocess).

5. Auth, Access Control & Web

  • Verify ROS 1 deployment is on an isolated, segmented network.
  • Confirm SROS2 enclaves are scoped to least privilege.
  • Robot web dashboard / REST / WebSocket bridge (rosbridge_suite): apply OWASP Top 10 (authN/Z, CSRF, IDOR, SSRF).
  • Test rosbridge WebSocket on port 9090 for unauthenticated topic publishing.
  • Check TLS hygiene on every HTTPS/MQTT endpoint.

6. AI / Perception

  • Inventory perception models (object detection, SLAM, voice).
  • Test adversarial robustness of camera/LiDAR pipelines.
  • Verify model file integrity (signatures, hashes) on disk.
  • Check for unprotected model update / OTA channels.

Known CVEs & Robot Vulnerabilities

ROS 1 Core

ID Description Reference
Architectural Lack of authentication & encryption in ROS 1 computational graph (no CVE; documented design choice) See SROS paper (White et al., 2016) and DeMarinis et al., 2018
Architectural rosbridge_suite WebSocket bridge has no built-in auth by default See rosbridge docs

ROS 2 / Nav2 / DDS

ID Component Description Reference
CVE-2024-37861 nav2_amcl (Nav2 Humble) Buffer overflow via crafted .yaml triggering RCE NVD
CVE-2024-41648 navigation2 (Humble) Insecure file permissions enable arbitrary code execution NVD
CVE-2022-30262 RTI Connext Pro / Fast-DDS / OpenDDS / Cyclone-DDS RTPS parser DoS NVD
2022 DDS RTPS bug cluster All major DDS vendors Series of related RTPS implementation flaws across vendors Alias Robotics writeup

MiR (Mobile Industrial Robots) and Easy Robotics

ID Description Reference
CVE-2020-10271 MiR ROS computational graph exposed to network; attacker can take control of robot logic NVD
CVE-2020-10275 REST API tokens derived from publicly-documented default credentials NVD
CVE-2020-10279 Insecure Ubuntu defaults (race conditions CWE-362, permission errors CWE-276, default creds) , CVSS 9.8 NVD
CVE-2020-10280 Incomplete HTTP header flood DoS on web dashboard (MiR + Easy Robotics) NVD

Universal Robots (UR3 / UR5 / UR10 / UR+)

ID Description Reference
CVE-2020-10266 UR+ platform components installed with no integrity verification (CVSS 8.1, CWE-345/353) NVD
CVE-2020-10290 URCaps (Java zip apps) execute without permission restrictions on the controller (CVSS 6.8) NVD

KUKA

ID Description Reference
CVE-2020-10268 KR C4 firmware/hardware , critical services can be terminated from Windows Task Manager, halting the manipulator (requires physical access, CVSS 6.1) NVD

ABB

ID Description Reference
CVE-2020-10287 IRC5 family robots with UAS service enabled ship with publicly-documented default credentials NVD

ROS 1 Specific

ID Description Reference
CVE-2020-10289 ROS actionlib package allows arbitrary object instantiation via unsafe YAML load , RCE NVD

Drone / UAV (MAVLink)

ID Description Reference
CVE-2020-10281 MAVLink v1.0 has no encryption by design , cleartext sensitive data over the wire (CWE-319) NVD
CVE-2020-10283 MAVLink v1.0 has no authentication , attacker can force version downgrade from v2.0 during GCS-autopilot negotiation NVD

Softbank NAO / Pepper

The IOActive 2017-2018 Hacking Robots Before Skynet research documented ~50 flaws in NAO, Pepper, UR, Baxter. Not all received CVE assignments. See the IOActive paper and technical appendix for full details.

Unitree (Public Research)

ID / Target Description Reference
CVE-2025-2894 Unitree Go1 backdoor: hardcoded CloudSail API key enables full remote control without auth SentinelOne advisory
CVE-2026-27509 Unitree Go2 unauthenticated DDS-based RCE via rt/api/programming_actuator/request (firmware V1.1.7-V1.1.11 EDU) boschko.ca write-up
CVE-2026-27510 Unitree Go2 mobile-app SQLite DB tampering enables persistent RCE bound to controller key combos boschko.ca write-up
UniPwn (no CVE assigned at time of writing) BLE Wi-Fi config service on Unitree Go2/B2/G1/H1 accepts the string unitree as a "secret" + uses hardcoded encryption keys + unsanitized shell injection. Worm-capable: infected robot scans BLE for other Unitree robots and compromises them. Disclosed Sept 2025 IEEE Spectrum (Sept 2025), Hackaday writeup
Unitree G1 static fleet-wide Blowfish-ECB key Single key reused across every G1 worldwide; effective entropy of the encryption is zero bits once one robot is reversed Mayoral-Vilches et al. 2025 (arXiv:2509.14139)

Boston Dynamics, Tesla Optimus (status note)

No specific public-research CVEs or peer-reviewed vulnerability reports for Boston Dynamics Spot or Tesla Optimus were verifiable at time of writing. General "security concerns" think-pieces exist, but they do not document specific exploitable issues. If you have a verified write-up, please PR.

📚 Authoritative registry: Robot Vulnerability Database (RVD) by Alias Robotics. ~241 catalogued vulnerabilities plus ~265 tracked ROS 2 bug entries (as of 2024). Verify current counts on the repo.


Notable Robot Security Incidents

Year Incident / Paper Summary Link
2017 Trend Micro Rogue Robots First end-to-end attack chain on industrial arms (ABB, Kuka) Paper
2018 IOActive Hacking Robots Before Skynet 50+ flaws in NAO, Pepper, UR, Baxter IOActive
2019 Alias Robotics RVD launch First public robot CVE registry Discourse
2020 MiR / UR / ABB CVE wave Coordinated disclosure of dozens of robot CVEs Alias as CNA
2022 DDS RTPS bug class Series of CVEs across all major DDS vendors Alias DDS
2024 Nav2 buffer overflow (CVE-2024-37861) First RCE in ROS 2 Nav stack via crafted YAML NVD
2024 RoboPAIR LLM jailbreak UPenn shows LLM-controlled robots can be jailbroken into unsafe actions robopair.org
2024-2025 Humanoid robot reversing Independent researchers reversing Unitree G1, Tesla Optimus firmware Various conference talks

AI / Perception Layer Attacks

Modern robots run ML for vision, planning, and dialog. New attack classes:

  • Adversarial examples: physical-world patches that fool object detectors (stop-sign attacks on autonomous robots).
  • Sensor spoofing: laser glare on LiDAR, ultrasonic injection on MEMS, GPS spoofing on outdoor robots.
  • Data poisoning: manipulating training datasets for fleet-learned models.
  • Model integrity attacks: tampering with on-device .onnx / .pt / .engine files; missing signatures.
  • Prompt injection on LLM-controlled robots: emerging issue for VLA (Vision-Language-Action) models like RT-2, Figure-01 stack, OpenVLA.
  • Backdoored foundation models: trojan triggers in pretrained vision/LLM backbones.
  • VLA jailbreaking: chained text+image prompts that bypass safety filters in LLM-driven robots (see RoboPAIR).

Reading:


Industrial Robot Specifics

  • Remote modification of control parameters / calibration: tiny offsets cause defective parts or unsafe motion (Trend Micro).
  • Safety PLC bypass: light curtains, e-stops, and safety zones controlled by separately certified safety PLCs; check whether they can be reached or overridden from the standard network.
  • Network pivot: a compromised cell controller is often the bridge from IT to the deep OT network.
  • Vendor remote-access tools (KUKA WorkVisual, ABB RobotStudio, Fanuc Roboguide): historically weak auth, often exposed for "remote support".
  • Fieldbuses: EtherCAT, PROFINET, CANopen, EtherNet/IP are typically unauthenticated; treat as inside the trust boundary.
  • OPC UA on robots: increasingly common; check certificate validation and anonymous-access policies.

Pivot reading: Awesome ICS Security guide.


Standards, Frameworks & Hardening

Standard / Framework Scope Link
ISO 10218-1/-2 Industrial robot safety ISO 10218
ISO/TS 15066 Collaborative robots (cobots) safety ISO 15066
IEC 62443 Industrial automation & control systems security IEC 62443
NIST SP 800-82 Rev.3 Guide to OT security (covers robotics) NIST
NIST IR 8259 IoT cybersecurity baseline (applies to robots) NIST.IR.8259.pdf
MITRE ATT&CK for ICS TTPs applicable to industrial robots attack.mitre.org/matrices/ics
SROS2 / DDS-Security Native ROS 2 security model SROS2
Robot Security Framework (RSF) Methodology for robot security assessments github.com/aliasrobotics/RSF
OWASP IoT Top 10 Applies to robot web/cloud surfaces OWASP IoT
OWASP MASVS / MSTG When robot apps include companion mobile apps OWASP MASVS
ENISA Robotics EU agency guidance ENISA Robotics
REP-2006 ROS 2 vulnerability disclosure policy REP-2006

Hardening Quick Wins

  • Disable ROS 1 in production; if unavoidable, air-gap or VPN-only.
  • Enable SROS2 with signed governance / permissions XML.
  • Pin a unique non-default ROS_DOMAIN_ID per deployment.
  • Disable rosbridge or front it with auth + TLS.
  • Secure boot + signed firmware; encrypted filesystem on removable media.
  • Network segmentation: separate safety, control, perception, cloud VLANs.
  • Continuous SBOM scanning (Syft + Grype).
  • Subscribe to ROS Security Vulnerability Disclosures (REP-2006).

Research Papers

Every entry below is a paper I've personally verified (title + authors + arXiv/DOI match the URL). If you spot a wrong link, please open a PR.

Foundational ROS Security

ROS 2 / SROS2 / DDS

Vulnerability Discovery & Tooling

Industrial Robot Attacks

AI / Perception / VLA


Conference Talks

Every entry below has a verified video, slides, or paper link. Grouped by topic, then by year (most recent first). Have a great talk to add? Open a PR.

Industrial Robot Attacks

Consumer Robots (Vacuum / Lawn Mower / Smart Home)

Robot Pentesting Tools & Methodology

LiDAR / Sensor / Perception Attacks

LLM-Controlled Robot Attacks (emerging)

Foundational ROS Security

Conference archives (browse for more)

When you can't find a specific talk above, search these archives:


Blogs & Vendor Research

Robotics-Focused Security Research Teams

ICS / OT Research (Robots Often Featured)

Vendor PSIRTs (Subscribe)

Community Blogs


Newsletters & Podcasts

Newsletters

Podcasts


Official ROS / ROS 2 Documentation

The starting points. If you're new to ROS security, read these in order.

ROS 2 Core Docs (use the matching distro)

REPs (ROS Enhancement Proposals)

SROS2 Reference

Working Groups


Books

ROS / ROS 2 Programming (foundation before security)

Theory

Adjacent (security-relevant context)

  • Industrial Cybersecurity (2nd ed.) , Pascal Ackerman , Packt 2021. OT context for industrial robots.
  • The Car Hacker's Handbook , Craig Smith , No Starch 2016. CAN bus / fieldbus overlaps with industrial robot controllers.
  • Practical IoT Hacking , Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Woods , No Starch 2021.
  • The Hardware Hacker , Andrew "bunnie" Huang , No Starch 2017. For when you have physical access to a robot.

Online Courses & Training

ROS / ROS 2 fundamentals (do these first)

Security-specific


YouTube Channels & Video Series

ROS / ROS 2 tutorials (no security yet, but you need this base)

Embedded / Hardware Security (transferable to robot internals)


Simulators & Lab Environments

Use these to safely practice attacks without bricking real hardware.


Hardware Platforms for Learning

The robots you'll see in most papers, tutorials, and CTFs.


CTFs & Practice Labs


Related Curated Lists (cross-references)

The robotics-resources side of the world. Most don't focus on security, but they're authoritative for tools, libraries, and learning paths you may want to defend.


ROS-Industrial Consortia

ROS-Industrial is the ROS branch focused on industrial / OT environments. The three regional consortia produce roadmaps, training, and white papers that shape what's deployed on factory floors.


Communities & Disclosure

Disclosure: report ROS bugs via REP-2006; vendor robots via vendor PSIRT or Alias Robotics as CNA.


Star History

Star History Chart

Contribute

🤝 PRs welcome. Add CVEs, tools, write-ups, talks, papers, or new research. Open an issue or PR on iotsrg/awesome-ros-security.

🛡️ Maintained by IOTSRG, IoT Security Research Group. See also: awesome-connected-things-sec for the broader IoT/Embedded/ICS/Automotive list.

Releases

No releases published

Packages

 
 
 

Contributors