Security Advisories | Buffer Overflow | SQLBase 8.1.0 Buffer Overflow Vulnerability

Vendor: Gupta Technologies LLC
Version Affected: SQLBase 8.1.0
Type: Remotely Exploitable Buffer Overflow
Severity: Very High
Date released: 10th February 2003

Background
SQLBase 8.1.0 is a fully-relational database management system (RDBMS), providing complete implementation of Structured Query Language (SQL) as well as its own control language. It is designed and built specifically for PC networks supporting various LAN/WAN configurations. According to their website, more than 1 million users have used their technology.

Execute command executes a stored command or procedure. The syntax of this command is : EXECUTE [auth ID].stored_command_or_procedure_name

Passing an extremely large command/procedure name as the parameter to the Execute command crashes SQLBase, giving the attacker System Privileges.

I. Description
Buffer overflow occurs when the string length exceeds 700 characters.The command we executed was as follows:

EXECUTE SYSADM.AAAAAAAAAAA...(700 times)

This was found to be true on a database we had created, but it also does exist on the default ISLAND database. This could potentially allow execution of system commands with privileges of the GuptaSQL Service (Local System). This vulnerability causes the SQL Base service to crash thus closing down the database. If not for system exploitation, it could easily be used for a very simple denial of service attack.

II. Analysis
Any attacker can exploit this buffer overflow to gain LocalSystem privileges on the server. SQLBase runs as a Service with LocalSystem privileges. Also, the attacker can authenticate by using the SYSADM username and a blank password for the default ISLAND database. Or if this database has been removed, he must then be a legitimate user. But he need not be the SYSADM, any ordinary user can execute the overflow.

III. Detection
Buffer Overflow in EXECUTE Command was detected in earlier version of SQLBase (v 8.0.0) by NII in early January. The vendor released a list of patches to this version one of which was bug ID 76532B http://www.guptaworldwide.com/tech/support/81fixes.htm However it seems that the vendor has not patched the latest version correctly. The new version, v 8.1.0, also has a similar vulnerability but it requires 700 characters instead of the earlier 350.

IV. Recovery
The SQLBase Service crashes and it needs to be then restarted. But since it runs with LocalSystem privileges, a buffer overflow in it allows the attacker full access to the system.

V. Vendor's Response
The vendor acknowledged this vulnerability and partially rectified it in release 8.1.0. LogABug of Gupta WorldWide has given the following ID to this issue. Defect ID: 77767A This bug has not been properly rectified. In the old 8.0.0 version, the BO was at 350 characters, whereas in the new version it takes 700 characters to crash the service. The bug will be rectified in May. Until then it is recommended that you must prevent unauthorized access to your SQLBase databases, because in order to perform this attack the user must have been authorized with at least CONNECT rights. This means that the default passwords for SYSADM, SYSSQL, & SYSREP are recommended to be changed. By eliminating the unauthorized access to the database, you can prevent unauthorized user from performing this attack.

Disclosure Timeline
January 3rd: Buffer Over flow found in SQLBase 8.0.0 EXECUTE command
January 4th: Reported to Vendor
January 6th: Response from LogaBug (logabug@guptaworldwide.com)
January 20th: SQLBase version 8.1.0 released which "claimed" to have patched the above vulnerability
January 29th: A similar BOF found in the new version 8.1.0, but now with 700 chars instead of 350
March 05th: Vendor acknowledges the vulnerability and informs of a patch to be released in May

Network Intelligence (I) Pvt. Ltd. © 2004 | Copyright | Disclaimer