Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RVD#1489: Unprotected intelectual property in Universal Robots controller CB 3.1 across firmware versions #1489

Open
rvd-bot opened this issue Apr 3, 2020 · 2 comments

Comments

@rvd-bot
Copy link
Contributor

rvd-bot commented Apr 3, 2020

{
    "id": 1489,
    "title": "RVD#1489: Unprotected intelectual property in Universal Robots controller CB 3.1 across firmware versions",
    "type": "vulnerability",
    "description": "Universal Robots control box CB 3.1 across firmware versions (tested on 3.13.0, 3.12.1, 3.12, 3.11 and 3.10.0) does not encrypt or protect in any way the intellectual property artifacts installed from the UR+ platform of hardware and software components (URCaps). These files (*.urcaps) are stored under '/root/.urcaps' as plain zip files containing all the logic to add functionality to the UR3, UR5 and UR10 robots. This flaw allows attackers with access to the robot or the robot network (while in combination with other flaws) to retrieve and easily exfiltrate all installed intellectual property.",
    "cwe": "CWE-311 (Missing Encryption of Sensitive Data)",
    "cve": CVE-2020-10267,
    "keywords": [
        "Universal Robots"
    ],
    "system": "UR3, UR5 and UR10",
    "vendor": "Universal Robots",
    "severity": {
        "rvss-score": 6.5,
        "rvss-vector": "RVSS:1.0/AV:AN/AC:L/PR:N/UI:N/Y:Z/S:U/C:H/I:N/A:N/H:N",
        "severity-description": "high",
        "cvss-score": 7.5,
        "cvss-vector": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
    },
    "links": [
        "https://www.universal-robots.com/plus/",
        "https://github.com/aliasrobotics/RVD/issues/1489"
    ],
    "flaw": {
        "phase": "testing",
        "specificity": "general issue",
        "architectural-location": "platform code",
        "application": "industrial robot manipulator",
        "subsystem": "manipulation:actuation",
        "package": "libc6 2.19-11 i386",
        "languages": "C",
        "date-detected": null,
        "detected-by": "V\u00edctor Mayoral Vilches <victor@aliasrobotics.com>",
        "detected-by-method": "testing",
        "date-reported": "2020-04-03",
        "reported-by": "V\u00edctor Mayoral Vilches <victor@aliasrobotics.com>",
        "reported-by-relationship": "security researcher",
        "issue": "https://github.com/aliasrobotics/RVD/issues/1489",
        "reproducibility": "always",
        "trace": "N/A",
        "reproduction": "https://asciinema.org/a/EJ5ZzqAbiVvPLyNABXyOk3iez",
        "reproduction-image": "Not available"
    },
    "exploitation": {
        "description": "Since URCaps aren't secured, its extraction requires attackers to access the file system (remotely or locally) and extract it from '/root/.urcaps/' folder. Resulting files are plain zip files.",
        "exploitation-image": "Not available",
        "exploitation-vector": "Not available"
    },
    "mitigation": {
        "description": "Use a combination of digital encryption and signatures to protect installed intellectual property. Ensure that file system where these file reside is read-only except for authorized modifications.",
        "pull-request": "Not available",
        "date-mitigation": null
    }
}
@rvd-bot rvd-bot changed the title Unprotected intelectual property in Universal Robots controller CB 3.1 across firmware versions RVD#1489: Unprotected intelectual property in Universal Robots controller CB 3.1 across firmware versions Apr 3, 2020
@vmayoral
Copy link
Member

vmayoral commented Apr 3, 2020

Demonstration available at https://asciinema.org/a/EJ5ZzqAbiVvPLyNABXyOk3iez

Reproduction simplified with the following alurity.yml file:

alurity.yml
networks:
  - network:
    - driver: overlay
    - name: urnetwork
    - encryption: false

containers:
  - container:
    - name: ur_3121
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.12.1
         - network: urnetwork
    - cpus: 4
    - memory: 4096

  - container:
    - name: attacker
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/alurity:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_robosploit/expl_robosploit:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/deve_atom:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/reco_nmap:latest
         - network: urnetwork

##################
# flow for testing and development
##################

flow:
  - container:
    - name: attacker
    - window:
        - name: attacker
        - commands:
          - command: "sleep 3"
          - type: "nmap -sV -T5 ur_3121"

  - container:
    - name: ur_3121
    - window:
        - name: gui
        - commands:
          - type: "source /root/run_gui.sh && $RUN_GUI"
          # - command: "source /root/run_gui.sh && $RUN_GUI"
    - window:
        - name: urcap
        - commands:
          # Launch ssh daemon
          - command: "mkdir /var/run/sshd"
          - command: "/usr/sbin/sshd"
          # # Fetch ROS Industrial driver's UR cap
          - command: "cd /root/.urcaps && wget https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/raw/master/ur_robot_driver/resources/externalcontrol-1.0.1.urcap"
          # Fetch a commercial dashboard solution for evaluation
          - command: "cd /programs && wget https://github.com/KimNyholm/web-dashboard-urcap/archive/v2.1.0.zip && unzip v2.1.0.zip"
          # Force install it
          - command: "cp /programs/web-dashboard-urcap-2.1.0/webdashboard-2.1.0.urcap /root/.urcaps"
          - split: horizontal
          - command: "htop"
  - attach: ur_3121

@vmayoral
Copy link
Member

vmayoral commented Apr 4, 2020

Assigned CVE ID.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants