SEC Consult SA-20120220-1 :: Multiple Vulnerabilities in ELBA5



SEC Consult Vulnerability Lab Security Advisory < 20120220-1 >
=======================================================================
title: Multiple Vulnerabilities in ELBA5
product: ELBA 5
vulnerable version: ELBA 5.4.1
5.5.0 R00004 build 0778
fixed version: partially in 5.5.0 R00004 build 0778
all issues in 5.5.0 R5
impact: Medium
homepage: http://www.elba.at/
found: 13.01.2012
by: Povilas Tumenas / SEC Consult Vulnerability Lab
https://www.sec-consult.com
=======================================================================

Vendor description:
-------------------
ELBA electronic banking is a multi-user, multi-protocol banking
application. For details, see http://www.elba.at.


Vulnerability overview/description:
-----------------------------------
1) The ELBA application v5.4.1 listens on a remotely reachable port
that is used for network testing purposes. It uses java serialization
for its protocol without any encryption or authentication. This can be
abused to leak the username of a currently logged on user. Disclosed
usernames can be used in further attacks on different services and/or
ease bruteforcing of user accounts.
Furthermore, if ELBA receives an invalid serialized method name an
assertation fails and a message box with an attacker controlled value
is displayed and the user is forced to shut down the application. This
can be abused to disrupt the work of a user, or as a part of a social
engineering attack as it is possible to make the message box display a
message controllable by the attacker.


2) Due to insufficient input validation, the application <v5.5.0 R5
allows the injection of direct SQL commands. By exploiting the
vulnerability, an attacker gains access to all records stored in the
database. In this instance of SQL injection, the vulnerability can
additionally be used to get access to other user accounts and their
data. During the creation of an account group by a non-sysadmin user
the account group name is not validated and is used in a SQL query.
This allows for the injection of arbitrary SQL code. The account group
creation can be accessed from the menu -> Master Data -> More ->
Account Groups.


Proof of concept:
-----------------
1.a) Denial of Service:

A python script has been developed in order to exploit this issue. This
proof-of-concept code will not be published.

After sending the malicious payload ELBA would display a message box
that would force the user to quit the application. Please also note
that the port under which ELBA listens for serialized communication
changes every time the application starts, but it can be easily found
remotely by port scanning.


1.b) Information Disclosure:

A python script has been developed in order to exploit this issue. This
proof-of-concept code will not be published.

The currently logged on username "SYSADMIN" is visible in the received
data after sending the malicious payload.

Please also note that the port under which ELBA listens for serialized
communication changes every time the application starts, but it can be
easily found remotely by port scanning.


2) Account Group Creation SQL-Injection:
To prove this issue it is sufficient to click the "New" button and
enter a value that would result in an invalid SQL query as the name of
the account group.

The description field can be anything, and either one or both of the
checkboxes must be selected. If you try to create this new account
group, then the SQL server terminates and an error message is
displayed, because the SQL query with an invalid syntax was executed.
If a user enters a value that results in a valid SQL query then the
account group creation is successful.

This attack does not work with the sysadmin account, because when using
the sysadmin account a prepared statement is used for account group
creation.


Vulnerable / tested versions:
-----------------------------
1) Information Disclosure and DoS are only exploitable in ELBA v5.4.1
2) ELBA 5.5.0 R00004 build 0778


Vendor contact timeline:
------------------------
2012-01-20: Contacting vendor through software@xxxxxxxxxxxxxx
2012-01-23: Vendor responds with contact of CISO.
2012-01-23: Contacting CISO with advisory.
2012-01-26: Vendor has verified vulnerability #2 and pointed out, that
only version v5.4.1 is affected by vulnerability #1.
2012-01-26: Verification of affected version of vulnerability #1 and
update of advisory accordingly.
2012-01-27: Vulnerability #2 will be fixed with next release (version
5.5.0 R5) on February 13th.
2012-02-13: Sending updated advisory to vendor
2012-02-20: Public release


Solution:
---------
1) The network testing functionality has been disabled or removed in
ELBA 5.5.0. Upgrade to the newest version.

2) According to the vendor, the SQL injection has been fixed in ELBA
5.5.0 R5. Upgrade to the new release.


Workaround:
-----------
1) In order to mitigate the vulnerability, firewall rules can be set to
prevent unauthorized access to the port used for network testing.

2) Do not give a user the privilege to create account groups.


Advisory URL:
-------------
https://www.sec-consult.com/en/advisories.html


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SEC Consult Unternehmensberatung GmbH

Office Vienna
Mooslackengasse 17
A-1190 Vienna
Austria

Tel.: +43 / 1 / 890 30 43 - 0
Fax.: +43 / 1 / 890 30 43 - 25
Mail: research at sec-consult dot com
https://www.sec-consult.com

EOF PTU / @2012