Exponent CMS SQL Injection
- Published: 14 Feb 2012
Share
Type
Severity
Affected products
Affected Versions
Vendor
Vendor Response
Author
Date
CVE Reference
File cron/send_reminders.php allows unsanitised input via the src parameter into an SQL query. It can be accessed by unauthorised users.
Blind SQL injection can allow file upload, which in turn could allow for remote command execution.
cron/send_reminders.php uses the value $_GET[‘src’] in the function selectObject. Though the value is passed through serialize(), this does not sanitise the input and so allows for SQL injection.
Revoke access permissions to send_reminders.php.
Apply vendor fix.
In cron/send_reminders.php, the $src value uses $_GET[‘src’]. $loc takes $src along with mod and int and passes them into:
$db->selectObject(“calendarmodule_config”,“location_data=‘“.serialize($loc).”’”);
The serialised $loc variable is used (in the case of MySQL) in framework/core/subsystem/database/mysqli.php in the function selectObject() as the $where variable in the query:
“SELECT * FROM " . $this->prefix . "$table
WHERE $where LIMIT 0,1”
Therefore the following request will cause a SQL timeout:
/exponent/cron/send_reminders.php?src=src%3d11”%3b}‘%20or%201%3d1%20AND%20SLEEP(5)%20%3b%20—%20”