mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Improve order validation in list_devices function to prevent SQL injection (#15885)
This commit is contained in:
@@ -313,12 +313,10 @@ function list_devices(Illuminate\Http\Request $request)
|
||||
$query = $request->get('query');
|
||||
$param = [];
|
||||
|
||||
if (empty($order)) {
|
||||
$order = 'hostname';
|
||||
}
|
||||
|
||||
if (stristr($order, ' desc') === false && stristr($order, ' asc') === false) {
|
||||
$order = 'd.`' . $order . '` ASC';
|
||||
if (preg_match('/^([a-z_]+)(?: (desc|asc))?$/i', $order, $matches)) {
|
||||
$order = "d.`$matches[1]` " . ($matches[2] ?? 'ASC');
|
||||
} else {
|
||||
$order = 'd.`hostname` ASC';
|
||||
}
|
||||
|
||||
$select = ' d.*, GROUP_CONCAT(dd.device_id) AS dependency_parent_id, GROUP_CONCAT(dd.hostname) AS dependency_parent_hostname, `location`, `lat`, `lng` ';
|
||||
|
Reference in New Issue
Block a user