SQL Injection Vulnerability in Invoices
CVE-2023-32308.
Boolean-based blind SQL injection vulnerability existed in Time Tracker invoices.php in versions prior to 1.22.11.5781. This was happening because of a coding error after validating parameters in POST requests. There was no check for errors before adjusting invoice sorting order. Because of this, it was possible to craft a POST request with malicious SQL for Time Tracker database.
Patches
Fixed in version 1.22.11.5781.
Workarounds
Upgrade is recommended. If it is not practical, insert an additional check for errors (line 79) in a condition before calling ttGroupHelper::getActiveInvoices() (line 85) in invoices.php.
The resulting code should look like this:
if ($err->no() && $request->getParameter('sorting_changed')) {
// User changed sorting. Get invoices sorted accordingly.
$sort_options = array('sort_option_1'=>$sort_option_1,
'sort_order_1'=>$sort_order_1,
'sort_option_2'=>$sort_option_2,
'sort_order_2'=>$sort_order_2);
$invoices = ttGroupHelper::getActiveInvoices($sort_options);
}
Support
If you need help with upgrading or migrating your system you can order
paid support. We can also host Time Tracker for your organization on our servers. If you have any questions feel free to
contact us.