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#3337: Service DoS through arbitrary pointer dereferencing on KUKA simulator #3337

Open
rvd-bot opened this issue Nov 6, 2020 · 0 comments

Comments

@rvd-bot
Copy link
Contributor

rvd-bot commented Nov 6, 2020

id: 3337
title: Service DoS through arbitrary pointer dereferencing on KUKA simulator
type: vulnerability
description: "Visual Components (owned by KUKA) is a robotic simulator that allows simulating factories and robots in order toimprove planning and decision-making processes. Visual Components software requires a special license which can beobtained from a network license server. The network license server binds to all interfaces (0.0.0.0) and listensfor packets over UDP port 5093. No authentication/authorization is required in order to communicate with theserver. The protocol being used is a property protocol by RMS Sentinel which provides the licensing infrastructurefor the network license server. RMS Sentinel license manager service exposes UDP port 5093 which provides sensitivesystem information that could be leveraged for further exploitation without any kind of authentication. Thisinformation includes detailed hardware and OS characteristics.After a decryption process, a textual protocol is found which contains a simple header with the requested command,application-identifier, and some arguments. The protocol is vulnerable to DoS through an arbitrary pointerderreference. This flaw allows an attacker to to pass a specially crafted package that, when processed by theservice, causes an arbitrary pointer from the stack to be dereferenced, causing an uncaught exception thatterminates the service. This can be further contructed in combination with RVDP#710 which exploits an informationdisclosure leak, or with RVDP#711 for an stack-overflow and potential code execution.Beyond denying simulations, Visual Components provides capabilities to interface with industrial machinery andautomate certain processes (e.g. testing, benchmarking, etc.) which depending on the DevOps setup might beintegrated into the industrial flow. Accordingly, a DoS in the simulation might have higher repercusions, dependingon the Industrial Control System (ICS) ICS infrastructure."
cwe: CWE-248
cve: CVE-2020-10292
keywords:
- KUKA, RMS sentinel LM, Visual Components, DoS
system: Visual Components Network License Server 2.0.8
vendor: KUKA Roboter GmbH, Visual Components
severity:
  rvss-score: 6.1
  rvss-vector: RVSS:1.0/AV:IN/AC:L/PR:N/UI:N/S:U/Y:Z/C:N/I:L/A:H/H:N
  severity-description: High
  cvss-score: 8.2
  cvss-vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
links:
- https://cwe.mitre.org/data/definitions/248.html
- https://www.visualcomponents.com/products/downloads/
- https://www.visualcomponents.com/products/visual-components/
flaw:
  phase: runtime-operation
  specificity: subject-specific
  architectural-location: application-specific
  application: Visual Components, RMS sentinel LM
  subsystem: simulation
  package: null
  languages: null
  date-detected: null
  detected-by: Sharon Brizinov (Claroty)
  detected-by-method: testing-dynamic
  date-reported: 2020-10-27
  reported-by: Sharon Brizinov (Claroty)
  reported-by-relationship: security researcher
  issue: https://gitlab.com/aliasrobotics/offensive/rvd/flaws/-/issues/712
  reproducibility: always
  trace: null
  reproduction: null
  reproduction-image: null
exploitation:
  description: |
    To exploit this vulnerability the attacker needs to have network access to the license server (either because 
    it's exposed or because the internal network has been compromised. Cause is related to the number of requested
    strings to merge, which is not correlated to the number of strings provided, and so arbitrary pointers from the 
    stack are popped out and dereferenced. This results with an uncaught Access Violation exception which terminates 
    the program. PoC available constructs a response reply to ​featureInfoToFile ​with is a mismatch between the 
    number of strings to merge and the requested amount leading to an Access Violation exception and terminating the 
    program. See alurity's robotsploit/exploits/kuka/rms exploits.
  exploitation-image: Not available
  exploitation-vector: null
  exploitation-recipe:
    networks:
    - network:
      - driver: bridge
      - name: kuka-simulation
      - subnet: 14.0.0.0/24
    vms:
      - vm:
        - name: vm1
        - path: $(pwd)/vms/visualcomponents_2.0.8
        - network: kuka-simulation
        - ip: 14.0.0.4
    containers:
    - 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
        - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_icssploit:latest
        - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_metasploit:latest
        - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/fore_wireshark:latest
        - network: kuka-simulation
mitigation:
  description: |
    Do not launch Visual Components while connected to local or wide area networks. Contain the simulation through 
    virtualization.
  pull-request: null
  date-mitigation: null
@rvd-bot rvd-bot changed the title Service DoS through arbitrary pointer dereferencing on KUKA simulator RVD#3337: Service DoS through arbitrary pointer dereferencing on KUKA simulator Nov 6, 2020
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

1 participant