Lucene search
K

IBM OmniFind - Buffer Overflow

🗓️ 09 Nov 2010 00:00:00Reported by Fatih KilicType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 36 Views

IBM OmniFind remote buffer overflow in login for

Related
Code
ReporterTitlePublishedViews
Family
0day.today
IBM OmniFind Buffer Overflow Vulnerability
10 Nov 201000:00
zdt
CVE
CVE-2010-3894
12 Nov 201021:00
cve
Cvelist
CVE-2010-3894
12 Nov 201021:00
cvelist
exploitpack
IBM OmniFind - Buffer Overflow
9 Nov 201000:00
exploitpack
NVD
CVE-2010-3894
12 Nov 201022:00
nvd
Packet Storm
IBM OmniFind Cross Site Scripting / Privilege Escalation
10 Nov 201000:00
packetstorm
Prion
Stack overflow
12 Nov 201022:00
prion
securityvulns
IBM OmniFind - several vulnerabilities
18 Nov 201000:00
securityvulns
securityvulns
Web applications security vulnerabilities summary (PHP, ASP, JSP, CGI, Perl)
18 Nov 201000:00
securityvulns
* 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 :)

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation