IBM OmniFind Buffer Overflow Vulnerability

2010.11.15
Credit: Fatih Kilic
Risk: High
Local: No
Remote: Yes
CWE: CWE-119


CVSS Base Score: 9.3/10
Impact Subscore: 10/10
Exploitability Subscore: 8.6/10
Exploit range: Remote
Attack complexity: Medium
Authentication: No required
Confidentiality impact: Complete
Integrity impact: Complete
Availability impact: Complete

* Remote buffer overflow (CVE-2010-3894) The administration interface has a login form with an username- and a passwordfield. Entering a valid username (default value is »esadmin«) and a very long string into the password field a buffer overflow is triggered. The function Java_com_ibm_es_oss_CryptionNative_ESEncrypt() defined in the file /opt/IBM/es/lib/libffq.cryptionjni.so is copying the password value to a fixed size buffer of 2048 bytes. There are two attack points to exploit this buffer overflow. The first attack is based on the following buffer combination password = 2080 bytes + firstattackpoint EAX+EDI (4 bytes) The inserted value for »firstattackpoint« will be used in the registers EAX and EDI. These registers are used to write data into. This means you can insert any arbitrary address, where you want to write to. The second attack is overwriting the saved return address and has the following layout. password = 2080 bytes + firstattackpoint EAX+EDI (4 bytes) + 480 bytes + EDX (4 bytes) + EAX (4 bytes) + EIP (4 bytes) To reach the return to your overwritten instruction pointer, you have to insert a valid writeable address as firstattackpoint. This second attack has some restrictions, you can only use printable ASCII values. Non printable characters will be removed from the input string. This is no real barrier, since the code is big enough to have many jmp/call addresses, which have printable ASCII values in their addresses. During the overwrite the register ESI is pointing to your input, so you could use a call *%esi to jump to your ASCII filtered shellcode. During the first attackpoint your input is unfiltered, you can insert arbitrary values. If you combine both attacks together, you can exploit it remotely and get a (root) shell. Default running user is root :)

References:

http://www.vupen.com/english/advisories/2010/2933
http://www.securityfocus.com/bid/44740
http://www.securityfocus.com/archive/1/archive/1/514688/100/0/threaded
http://www.osvdb.org/69079
http://www.exploit-db.com/exploits/15474
http://security.fatihkilic.de/advisory/fkilic-sa-2010-ibm-omnifind.txt


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top