diff --git a/CloudronStack/output/master-control-script.sh b/CloudronStack/output/master-control-script.sh index 80b4747..6fa23d6 100755 --- a/CloudronStack/output/master-control-script.sh +++ b/CloudronStack/output/master-control-script.sh @@ -196,9 +196,10 @@ update_status() { # Sanitize inputs to prevent injection # Remove any pipe characters which would interfere with table format - local clean_app_name=$(printf '%s\n' "$app_name" | sed 's/|//g; s/[[\.*^$()+?{|]/\\&/g') - local clean_status=$(printf '%s\n' "$new_status" | sed 's/|//g; s/[[\.*^$()+?{|]/\\&/g') - local clean_notes=$(printf '%s\n' "$notes" | sed 's/|//g; s/[[\.*^$()+?{|]/\\&/g' | sed 's/&/&/g; s//>/g') + # Escape regex special characters to prevent sed injection + local clean_app_name=$(printf '%s\n' "$app_name" | sed 's/|//g; s/[[\.*^$()+?{|\\]/\\&/g') + local clean_status=$(printf '%s\n' "$new_status" | sed 's/|//g; s/[[\.*^$()+?{|\\]/\\&/g') + local clean_notes=$(printf '%s\n' "$notes" | sed 's/|//g; s/[[\.*^$()+?{|\\]/\\&/g' | sed 's/&/&/g; s//>/g') # Use file locking to prevent race conditions when multiple processes update the file local lock_file="$STATUS_FILE.lock"