Fix shell injection vulnerability in environment variable handling #41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes a shell injection vulnerability in the
setup_user_envfunction by replacing unsafeos.system()calls with direct file writing.Changes
shlexmodule for safe shell argument quotingos.system()withopen()for writing environment variablesshlex.quote()to properly escape theCLEARML_AUTH_TOKENvalueos.path.expanduser()for proper path handlingSecurity Impact
The previous implementation used
os.system()with string formatting, which could allow shell command injection if theCLEARML_AUTH_TOKENenvironment variable contained malicious shell metacharacters. This change eliminates that risk by writing directly to the file and properly quoting the token value.