Tealeaf Technologies was purchased by IBM in May of 2012, and is a customer buying analytics application. Essentially, an administrator will configure a Tealeaf server that accepts analytic data from remote servers, which it then generates various models, graphs, reports, etc based on the aggregate of data. Their analytics status/server monitoring application is vulnerable to a fairly trivial OS command injection vulnerability, as well as local file inclusion. This vulnerability was discovered on a PCI engagement against a large retailer; the LFI was used to pull PHP files and hunt for RCE.
The entire application is served up by default on port 8080 and is developed in PHP. Authentication by default is disabled, however, support for Basic Auth appears to exist. This interface allows administrators access to statistics, logs, participating servers, and more. Contained therein is the ability to obtain application logs, such as configuration, maintenance, access, and more. The log parameter is vulnerable to LFI:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
The URL then is http://host:8080/download.php?log=../../../etc/passwd
Tealeaf also suffers from a rather trivial remote OS command injection vulnerability. Under the Delivery tab, there exists the option to ping remote servers that send data back to the mothership. Do you see where this is going?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
And shell_command_output:
1 2 3 4 5 |
|
Harnessing the $host
variable, we can inject arbitrary commands to run under the context of the process user, which by default is ctccap
. In order to exploit this without hanging processes or goofing up flow, I injected the following as the host variable: 8.8.8.8 -c 1 ; whoami ; ping 8.8.8.8 -c 1
.
Timeline
- 11/08/2013: IBM vulnerability submitted
- 11/09/2013: IBM acknowledge vulnerability and assign internal advisory ID
- 12/05/2013: Request for status update
- 01/06/2014: Second request for status update
- 01/23/2014: IBM responds with a target patch date set for “another few months”
- 03/26/2014: IBM posts advisory, assigns CVE-2013-6719 and CVE-2013-6720