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