DB2 UDB - Handshake Protocol DoS Attack (BID 19586) 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 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 ACCSEC command during the handshake process with the server, causing the server process to crash. Details: A simple connection establishment process to the DB2 UDB server with a user-password authentication consists of several commands: EXCSAT (Exchange Server Attributes), ACCSEC (Access Security), SECCHK (Security Check) and ACCRDB (Access RDB). The RDBNAM parameter, which appears in some of them, specifies the name of the RDB that the command accesses (according to the documentation, if this parameter is specified, its value must be the same as the value specified on the ACCRDB command for RDBNAM). ACCSEC usually appears twice during the handshake process. It turns out that if the RDBNAM parameter is omitted from the first ACCSEC command, the DB2 UDB server becomes unstable, while the establishment of the connection may continue successfully. Once the connection is established, a simple command (such as SELECT) sent through the connection causes the service to terminate unexpectedly. Exploit: Send a connection establishment request to the DB2 UDB server, where the RDBNAM parameter is omitted from the first ACCSEC command. After the connection is established, send a simple query (e.g.: SELECT * FROM dummy). Vulnerable: DB2 UDB version 8.x all platforms. Not Vulnerable: Vendor’s Status: - January 11th 2006 – Vendor Notified - August 14th 2006 – Patched in UDB 8.1 FixPak 13, APAR is IY87211 - August 18th 2006 – Reported by vendor to Bugtraq and labeled as BID 19586 Workaround: None. Credit: Discovered by Tal Ryterski from Imperva Inc.