<<< Date Index >>>     <<< Thread Index >>>

Details for BID 18428



DB2 UDB - Unauthenticated Buffer Overflow and DoS (BID 18428)

Background:
DB2 Universal Database (UDB)? is a popular database software package from IBM 
available for legacy platforms as well as open systems (Unix and Windows). 
Clients use a protocol called DRDA to communicate with the DB2 UDB server. 
Protocol messages are used for session setup, authentication and data transfer

Scope:
Imperva?s Application Defense Center is conducting an extensive research of the 
DRDA protocol and its implementation. As part of the research the team has 
identified severe vulnerability in DB2 UDB?s connection establishment mechanism 
that allows an attacker to terminate the UDB service, effectively denying 
service from all database users.

Findings:
An attacker can send a specially crafted EXCSAT command during the handshake 
process with the server, causing the server process to crash. It seems that the 
command invokes a buffer overflow condition on the server possibly allowing 
execution of arbitrary code on the server.

Details:
The first message used by a client when establishing a connection to the 
database is the EXCSAT message (message code 0x1041). This message includes an 
object called MGRLVLLS (code 0x2114) which in term contains a vector of 4 byte 
entries (two bytes for the manager code and two byte for the compatibility 
level). When the size of the MGRLVLLS message is large enough a buffer overflow 
condition is invoked.
If the client terminates the connection immediately after sending this message 
the server process is terminated. 

Exploit:
Create an EXCSAT message with a very long (>1Kbytes) MGRLVLLS message. (see 
attached)
Tested Versions

Vulnerable:
DB2 UDB version 8.x all platforms

Not Vulnerable:

Vendor?s Status:
- Vendor notified on Feb-8, 2006.
- Vulnerability patched in UDB 8.x FixPak 12 on May 5th 2006, APAR is IY84096
- Reported by vendor to Bugtraq on June 14th 2006 and labeled BID 18428

Workaround:
None