WINCVS 2009R2 DLL Hijacking

WINCVS 2009R2 suffers from a dll hijacking vulnerability.


MD5 | 23a65c64af1bf05b3c7e8655d9e0b8ee

[+] Credits: John Page (aka hyp3rlinx)    
[+] Website: hyp3rlinx.altervista.org
[+] Source: http://hyp3rlinx.altervista.org/advisories/CVS-SUITE-2009R2-INSECURE-LIBRARY-LOADING-CVE-2018-6461.txt
[+] ISR: Apparition Security


Vendor:
=============
march-hare.com


Product:
===========
WINCVS 2009R2

CVS Suite is a modern versioning system that combines the power and stability of CVS with modern easy to use client software and support for
Configuration Management best practice. As the newest major release of the worlds most popular versioning system, CVS Suite 2009R2 continues
CVSNTs blazing pace of innovation with new features and usability enhacements.



Vulnerability Type:
===================
Insecure Library Loading


CVE Reference:
==============
CVE-2018-6461


Security Issue:
================
Non privileged user can write files to "C:\ProgramData\March Hare\myrepo\CVSROOT" to gain authenticated access with the same privileges
as the current logged on user, in addition they can run arbitrary code with same privileges as that of the victim.

e.g.

C:\ProgramData\March Hare\myrepo\CVSROOT>cacls * | more
C:\ProgramData\March Hare\myrepo\CVSROOT\CVS Everyone:(OI)(CI)F
NT AUTHORITY\SYSTEM:(OI)(CI)F


WinCVS:
Attackers can place a malicious DLLs in CVSROOT and wait for CVS user to run WINCVS, then when browse to a repository in CVSROOT and right click on
CVSROOT or a CVSROOT file to 'Open in new instance' or Ctrl+F2 then the attackers DLL will execute.

Attacker supplied DLL e.g. 'python31.dll' will execute if placed on victims desktop and user initially opens 'wicvs2.exe'.
basically anywhere or repository we can place malicious DLL that they can browse to should work.

WinMerge 2009 also vulnerable:
If a WinMerge project file is opened from a remote share where specific attacker supplied DLLs have been placed it will load and execute it.

vuln DLL(s):
============
tcl87.dll
python30.dll
python31.dll

Basically anywhere or any repository we can place malicious DLL that they can browse to should work.


References:
============
http://march-hare.com/cvspro/vulnwincvs.htm


Exploit/POC:
=============
Create "python31.dll"

#include<windows.h>

//gcc -c python31.c
//gcc -shared -o python31.dll python31.o

BOOL APIENTRY DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved){
switch (reason) {
case DLL_PROCESS_ATTACH:
MessageBox(NULL, "Done!", "hyp3rlinx", MB_OK);
break;
}

return 0;
}



Network Access:
===============
Remote


Severity:
=========
High


Disclosure Timeline:
=============================
Vendor Notification: January 26, 2018
Vendor acknowledgemen: January 27, 2018
Vendor releases fix: February 2, 2018
February 5, 2018 : Public Disclosure



[+] Disclaimer
The information contained within this advisory is supplied "as-is" with no warranties or guarantees of fitness of use or otherwise.
Permission is hereby granted for the redistribution of this advisory, provided that it is not altered except by reformatting it, and
that due credit is given. Permission is explicitly given for insertion in vulnerability databases and similar, provided that due credit
is given to the author. The author is not responsible for any misuse of the information contained herein and accepts no responsibility
for any damage caused by the use or misuse of this information. The author prohibits any malicious use of security related information
or exploits by the author or elsewhere. All content (c).

hyp3rlinx

Related Posts