ATutor versions 2.2 and below suffer from a session variable overloading vulnerability.
fbaac07ae5c801f3305296ae4796cdbada7788e75ace0989665efa6ffddd79c9
----------------------------------------------------------------------
ATutor <= 2.2 (confirm.php) Session Variable Overloading Vulnerability
----------------------------------------------------------------------
[-] Software Link:
http://www.atutor.ca/
[-] Affected Versions:
Version 2.2 and prior versions.
[-] Vulnerability Description:
The vulnerable code is located in the /confirm.php script:
140. if (isset($_REQUEST['auto_login']))
141. {
142.
143. $sql = "SELECT M.member_id, M.login, M.preferences, M.language FROM %smembers M WHERE M.member_id=%d";
144. $row = queryDB($sql, array(TABLE_PREFIX, $_REQUEST["member_id"]), TRUE);
145.
146. if ($row['member_id'] != '')
147. {
148. $_SESSION['valid_user'] = true;
149. $_SESSION['member_id'] = $_REQUEST["member_id"];
150. $_SESSION['course_id'] = 0;
151. $_SESSION['login'] = $row[login];
This script is intended to be used for the account confirmation. However, its "auto-login" feature
uses the same session variables used to authenticate the user in the whole application, and this
might enable unauthenticated attackers to bypass the authentication mechanism and impersonate
legitimate users by simply knowing their user IDs. Successful exploitation of this vulnerability
might allow an attacker to access the application with the most privileged user, leading to
achieve arbitrary PHP code execution by leveraging further vulnerabilities.
[-] Solution:
Apply the vendor patches.
[-] Disclosure Timeline:
[10/10/2014] - Vendor notified
[13/10/2014] - Vendor response stating this issue will be patched right away
[02/11/2014] - Vendor patch released: http://update.atutor.ca/patch/2_2/2_2-6/patch.xml
[09/11/2014] - Vendor notified about incompleteness of the patch
[10/11/2014] - Vendor released a further patch: http://update.atutor.ca/patch/2_2/2_2-7/patch.xml
[30/09/2015] - CVE number requested
[05/10/2015] - CVE number assigned
[04/11/2015] - Public disclosure
[-] CVE Reference:
The Common Vulnerabilities and Exposures project (cve.mitre.org)
has assigned the name CVE-2014-9753 to this vulnerability.
[-] Credits:
Vulnerability discovered by Egidio Romano.
[-] Original Advisory:
http://karmainsecurity.com/KIS-2015-06