lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date: Wed, 04 Nov 2015 15:44:28 +0100
From: Egidio Romano <>
Subject: [KIS-2015-06] ATutor <= 2.2 (confirm.php) Session Variable Overloading

ATutor <= 2.2 (confirm.php) Session Variable Overloading Vulnerability

[-] Software Link:

[-] 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.	{
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);
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:
[09/11/2014] - Vendor notified about incompleteness of the patch
[10/11/2014] - Vendor released a further patch:
[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 (
has assigned the name CVE-2014-9753 to this vulnerability.

[-] Credits:

Vulnerability discovered by Egidio Romano.

[-] Original Advisory:

Powered by blists - more mailing lists