Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
00688e8
fix(security): RLIKE injection, XSS, unserialize, and trigger_cmd har…
somethingwithproof May 17, 2026
232cf17
test: add Pest v1 security regression suite
somethingwithproof May 17, 2026
3c6f4f9
test(security): strengthen TriggerCmd and RlikeInjection coverage
somethingwithproof May 17, 2026
15fc4eb
fix(security): replace raw SQL concatenation with prepared statements
somethingwithproof May 17, 2026
a80884d
fix(security): wrap AJAX URL params with encodeURIComponent
somethingwithproof May 17, 2026
f8ca477
test(security): add encodeURIComponent regression tests for AJAX filters
somethingwithproof May 17, 2026
4253b17
fix(compat): replace str_starts_with with strncmp for PHP 7.4
somethingwithproof May 17, 2026
9eee922
fix(guard): cast drp_action valid-actions to strings for strict in_array
somethingwithproof May 17, 2026
9cbd266
fix(validation): add gfrv() calls for id and action fields in bulk ha…
somethingwithproof May 17, 2026
a21d6d0
test(security): add PreparedStatementConsistencyTest from #769
somethingwithproof May 17, 2026
3dea5bd
docs(api): document get_total_row_data third-arg contract at call sites
somethingwithproof May 17, 2026
732c3b7
fix(atomicity): wrap bulk notify-list writes in transactions
somethingwithproof May 17, 2026
dbcf41f
fix(atomicity): rollback on db_execute_prepared failure in bulk handlers
somethingwithproof May 17, 2026
1229ea0
fix(atomicity): break on failure in loops; move template cascade afte…
somethingwithproof May 17, 2026
246c61b
docs(changelog): document security hardening entries for develop
somethingwithproof May 17, 2026
d987beb
fix(thold): quote PHP_BINARY in lint test, add putenv/bootstrap sync …
somethingwithproof May 17, 2026
0e80bdc
fix(thold): clarify RLIKE test assertions and document sql_params con…
somethingwithproof May 17, 2026
7a4ded8
fix(test): use nowdoc for RLIKE vulnerable-pattern strings
somethingwithproof May 17, 2026
8a38efb
fix(test): replace nested-paren-hostile regex with substr_count; shor…
somethingwithproof May 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

--- develop ---

* security: Replace array_to_sql_or() and direct $selected_items concatenation with db_execute_prepared() and IN(?,?,?) placeholders in notify_lists.php bulk form actions
* security: Wrap all four bulk action blocks in db_begin_transaction()/db_commit_transaction(); rollback on db_execute_prepared() failure; break per-item loops immediately on error
* security: Move thold_template_update_thresholds() cascade after db_commit_transaction() so it does not participate in the transaction boundary
* security: Parameterize $graph_id in get_allowed_thresholds() and get_allowed_threshold_logs() using gl.id = ? placeholder; switch to db_fetch_assoc_prepared() and db_fetch_cell_prepared()
* security: Validate rfilter via FILTER_VALIDATE_IS_REGEX and escape with db_qstr() before use in RLIKE clauses
* security: Apply html_escape() to get_request_var('page') in thold.php and thold_graph.php hidden inputs; wrap AJAX filter URL params with encodeURIComponent()
* security: Apply sanitize_unserialize_selected_items() to selected_graphs_array in thold_webapi.php
* security: Cast drp_action allowlist keys to strings via array_map('strval', array_keys(...)) for correct strict in_array() comparison
* security: Add Pest v1 security test suite covering prepared statements, RLIKE injection, XSS escaping, unserialize hardening, PHP 7.4 compatibility, and smoke linting
* issue#686: Applying a templated threshold to a graph via the wrench icon, creates a duplicate graph
* issue#707: Excessive timeout for row caching prevents data from being updated timely
* issue#710: Fixing Typo in thold_daemons.service File
Expand Down
17 changes: 17 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "cacti/plugin-thold",
"description": "Thold Plugin for Cacti",
"type": "project",
"require-dev": {
"pestphp/pest": "^1.23"
},
"autoload": {
"psr-4": {}
},
"scripts": {
"test": "vendor/bin/pest tests/Security"
},
"config": {
"vendor-dir": "vendor"
}
}
Loading
Loading