CRITICAL SECURITY FIXES: Address comprehensive audit findings
SECURITY FIXES: 1. Remove unsafe eval() function (launcher.sh:88-99) - eval() function removed entirely (was a code injection risk) - Function was unused but posed security liability 2. Fix SQL injection in database queries (reference-db.sh:225-229) - Properly escape single quotes in database names - Changed from incorrect backtick escaping to proper SQL escaping - Database names now safely used in WHERE clauses 3. Fix credential exposure (reference-db.sh:199-235) - MYSQL_PWD no longer exported (visible to child processes) - Password kept in local variable only - Set MYSQL_PWD only for individual mysql commands - Credentials immediately unset after use - Password never visible in 'ps aux' or /proc/environ 4. Refactored database queries - Each mysql command gets password set independently - Uses here-string (<<<) instead of process substitution for safety - Proper error handling per query All critical vulnerabilities addressed Syntax validation: PASS
This commit is contained in:
-18
@@ -80,24 +80,6 @@ run_module() {
|
||||
read -p "Press Enter to continue..."
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
# TERMINAL INPUT HELPER
|
||||
#############################################################################
|
||||
|
||||
# Safe read that handles both interactive and piped scenarios
|
||||
safe_read() {
|
||||
local prompt="$1"
|
||||
local varname="$2"
|
||||
|
||||
if [ -t 0 ]; then
|
||||
# Terminal available, normal read
|
||||
read -p "$prompt" "$varname"
|
||||
else
|
||||
# No terminal (piped stdin), accept input or skip
|
||||
read -p "$prompt" "$varname" 2>/dev/null || eval "$varname=''"
|
||||
fi
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
# SYSTEM INFO DISPLAY (Quick View)
|
||||
#############################################################################
|
||||
|
||||
Reference in New Issue
Block a user