Fixes #265, follow-up to #263/#264.
Summary
Every endpoint that accepts additional_args (97 occurrences in hexstrike_server.py) appends it to the shell=True command string with no sanitization at all, independent of the target/url/ports/wordlist fields #264 fixes. Even the two endpoints #264 patches remain exploitable through additional_args alone.
Fix
Added safe_additional_args(): splits the value into shell tokens via shlex.split() and quotes each one via shlex.quote(), preserving the intended one-flag-per-token semantics ("-T4 -Pn" still passes as two separate arguments) while making it impossible for any token to break out of the command. Applied to every additional_args extraction site (97 call sites, one helper).
New PoC test (additional_args_injection_poc_test.py) confirms the injection is blocked on both a #264-patched endpoint (nmap) and an untouched one (gobuster), and that legitimate multi-flag usage still works.
This PR is independent of #264 and applies cleanly regardless of merge order; if #264 lands first there is no conflict since it touches a disjoint set of variables (target/url/ports/wordlist vs additional_args).