CRITICAL FIXES: Security vulnerabilities in reference-db.sh and common-functions.sh

SECURITY FIXES:
1. SQL Injection (reference-db.sh:183)
   - Escape database names with backticks in WHERE clause
   - Changed: WHERE table_schema='' → WHERE table_schema=``
   - Prevents malicious database names from breaking SQL queries

2. Password Exposure (reference-db.sh:166)
   - Stop passing password on command line (visible in ps aux)
   - Changed: mysql -uadmin -p${plesk_mysql_pass} → MYSQL_PWD env var
   - Passwords no longer exposed in process listings
   - Added unset MYSQL_PWD at end of function for cleanup

3. Race Condition in Temp Files (common-functions.sh:173)
   - Replace mkdir -p with mktemp -d for secure temp directory creation
   - Changed: mkdir -p "$TEMP_SESSION_DIR" → mktemp -d -t server-toolkit.XXXXXX
   - Prevents race condition attacks on predictable paths

Testing: All changes validated for syntax and behavior
This commit is contained in:
Developer
2026-03-19 20:44:58 -04:00
parent e14dc213aa
commit 16f222fc0e
4 changed files with 43 additions and 5 deletions
+1 -2
View File
@@ -169,8 +169,7 @@ show_terminal_info() {
# Create temporary session directory
create_temp_session() {
export SESSION_ID=$$
export TEMP_SESSION_DIR="/tmp/server-toolkit-${SESSION_ID}"
mkdir -p "$TEMP_SESSION_DIR"
export TEMP_SESSION_DIR=$(mktemp -d -t server-toolkit.XXXXXX)
# Cleanup on exit
trap '[ -n "$TEMP_SESSION_DIR" ] && rm -rf "$TEMP_SESSION_DIR" 2>/dev/null' EXIT INT TERM