From 9b6652f51204fdd313142c612b69898b59737903 Mon Sep 17 00:00:00 2001 From: Developer Date: Thu, 23 Apr 2026 19:01:02 -0400 Subject: [PATCH] HIGH FIX: Add default values to array variable assignments Lines 1763, 1779: Variables from associative arrays may be empty - req_count: Changed from ${ip_request_counts[$ip]} to ${ip_request_counts[$ip]:-0} - fail_rate: Changed from ${scanner_ips[$ip]} to ${scanner_ips[$ip]:-0} - Prevents type mismatch errors when array keys don't exist - Provides sensible defaults (0) for missing values Fixes QA HIGH issue at line 1788. --- modules/security/bot-analyzer.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/security/bot-analyzer.sh b/modules/security/bot-analyzer.sh index d93eb8a..d6794b1 100755 --- a/modules/security/bot-analyzer.sh +++ b/modules/security/bot-analyzer.sh @@ -1760,7 +1760,7 @@ calculate_threat_scores() { fi score=0 - req_count=${ip_request_counts[$ip]} + req_count=${ip_request_counts[$ip]:-0} # IMPROVED: Base request volume scoring # Skip volume scoring for legitimate bots (Google, Bing, etc.) @@ -1776,7 +1776,7 @@ calculate_threat_scores() { # NEW: Success rate analysis bonuses # High failure rate (80%+ 404/403) = scanning behavior if [ -n "${scanner_ips[$ip]}" ]; then - fail_rate=${scanner_ips[$ip]} + fail_rate=${scanner_ips[$ip]:-0} if [ "$fail_rate" -ge 90 ]; then score=$((score + 8)) # Very high failure rate elif [ "$fail_rate" -ge 80 ]; then