From b014d268f466d7447d0fdbb1a8ae266500394ca4 Mon Sep 17 00:00:00 2001 From: Thomas Vincent Date: Wed, 29 Jul 2026 15:32:43 -0700 Subject: [PATCH] chore: use filtered audit user id binding --- audit.php | 14 +++++--- tests/e2e/test_security_wiring.php | 53 ++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 tests/e2e/test_security_wiring.php diff --git a/audit.php b/audit.php index 8703ec0..527c585 100644 --- a/audit.php +++ b/audit.php @@ -306,13 +306,15 @@ function audit_export_rows() { } if (get_request_var('event_page') != '-1') { + /* event_page is a sanitized page basename, not a numeric ID. */ $sql_clauses[] = 'page = ?'; $sql_params[] = get_request_var('event_page'); } - if (!isempty_request_var('user_id') && get_request_var('user_id') > '-1') { + $user_id = get_filter_request_var('user_id'); + if ($user_id > -1) { $sql_clauses[] = 'user_id = ?'; - $sql_params[] = get_request_var('user_id'); + $sql_params[] = $user_id; } $sql_where = cacti_sizeof($sql_clauses) ? 'WHERE ' . implode(' AND ', $sql_clauses) : ''; @@ -552,13 +554,15 @@ function audit_log() { } if (get_request_var('event_page') != '-1') { + /* event_page is a sanitized page basename, not a numeric ID. */ $sql_clauses[] = 'page = ?'; $sql_params[] = get_request_var('event_page'); } - if (!isempty_request_var('user_id') && get_request_var('user_id') > '-1') { + $user_id = get_filter_request_var('user_id'); + if ($user_id > -1) { $sql_clauses[] = 'user_id = ?'; - $sql_params[] = get_request_var('user_id'); + $sql_params[] = $user_id; } $sql_where = cacti_sizeof($sql_clauses) ? 'WHERE ' . implode(' AND ', $sql_clauses) : ''; @@ -684,7 +688,7 @@ function audit_log() { 0 ? 1 : 0);