Dockerfile
Defines a ROS 2 Foxy container based on tiryoh/ros2:foxy-20230129T0227, installs build tools and dependencies, creates a /keystore directory, and copies the PoC script.
Dockerfile:1-25Data Distribution Service (DDS) Chain of Trust (CoT) violation vulnerability in Open DDS
CVE-2023-24012 has a selected CVSS score of 8.2 (high); EIP currently links 1 repository PoC and 1 lab environment.
An attacker can arbitrarily craft malicious DDS Participants (or ROS 2 Nodes) with valid certificates to compromise and get full control of the attacked secure DDS databus system by exploiting vulnerable attributes in the configuration of PKCS#7 certificate’s validation. This is caused by a non-compliant implementation of permission document verification used by some DDS vendors. Specifically, an improper use of the OpenSSL PKCS7_verify function used to validate S/MIME signatures.
| Product | Source | Version range | Status |
|---|---|---|---|
Default status: unaffected | CVE List | all versions | affected |
The artifact is a shell script (poc.sh) that demonstrates a privilege escalation vulnerability in ROS 2 SROS2. It modifies a signed permissions file and re-signs it with the node's own certificate to allow a listener node to subscribe to a topic it was originally denied access to, proving the security bypass.
No backdoor observed in reviewed code
The PoC demonstrates a legitimate CVE-2023-24012 exploit for SROS2 permission bypass. All scripts (Dockerfile, poc.sh) and documentation (README.md) perform only expected actions: building a ROS 2 environment, generating keys, creating and modifying permission files, and testing the vulnerability. No concealed, deceptive, or operator-directed harmful behavior is present.
The script actively modifies security permissions and re-signs them to gain unauthorized access, which is the definition of an exploit. It does not merely detect the vulnerability; it exercises it to achieve a privilege escalation.
poc.sh:126-136poc.sh:152-155poc.sh:131-136poc.sh:28-30poc.sh:81-83poc.sh:131poc.sh:133-136poc.sh:144-155poc.sh:131-136Dockerfile:13-14Dockerfile:22-23This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.
A Docker-based ROS 2 Foxy environment that demonstrates a SROS2 permission bypass vulnerability (CVE-2023-24012). It includes a talker and listener node with restrictive permissions, and a PoC script that modifies and re-signs the listener's permissions to allow unauthorized subscription.
README.md:1-5Dockerfile:1-25The README explicitly states the project demonstrates a SROS2 permission bypass vulnerability, references CVE-2023-24012, and provides steps to reproduce the exploit. The Dockerfile builds a ROS 2 environment and copies a PoC script that performs the exploit steps.
README.md:1-5README.md:7-9Dockerfile:1-25Defines a ROS 2 Foxy container based on tiryoh/ros2:foxy-20230129T0227, installs build tools and dependencies, creates a /keystore directory, and copies the PoC script.
Dockerfile:1-25A shell script that creates a SROS2 keystore, sets restrictive permissions (talker publishes 'chatter', listener subscribes 'something_else'), tests normal operation, then modifies the listener's permissions to subscribe to 'chatter' and re-signs them using the node's own certificate, demonstrating privilege escalation.
poc.sh:1-165A ROS 2 demo node (demo_nodes_cpp talker) that publishes on the 'chatter' topic. It is launched with the /talker enclave override.
poc.sh:90-95A ROS 2 demo node (demo_nodes_py listener) that is initially restricted to subscribe only to 'something_else'. After the exploit, it is made to subscribe to 'chatter'.
poc.sh:90-95poc.sh:120-130Supported by supplied evidence
The PoC script demonstrates exactly the described vulnerability: a local attacker with access to the node's certificate can modify the permissions XML and re-sign it, bypassing SROS2 access control. The README explicitly associates the project with this CVE.
poc.sh:120-130README.md:1-5README.md:11-13poc.sh:120-130README.md:17-19README.md:23-25poc.sh:20-30poc.sh:34-88poc.sh:100-115poc.sh:120-130poc.sh:134-165All visible behavior is confined to the container and directed at the lab's own target (ROS 2 nodes). The PoC script only modifies local permission files and re-signs them using keys already present in the container. There is no evidence of host escape, external connectivity, persistence, credential theft, or destructive actions.
poc.sh:1-165Dockerfile:1-25This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.