Security: Command injection risk in privileged shell command construction#458
Closed
tomaioo wants to merge 1 commit intobrechtm:masterfrom
Closed
Conversation
The macOS helper builds a shell command string (`create_link`) using `.format()` and then executes it via AppleScript `do shell script ... with administrator privileges`. Because arguments are interpolated into a single shell string without robust escaping/quoting, a path containing shell metacharacters (for example, a crafted app install path with quotes or `;`) could alter the command executed as admin. Signed-off-by: tomaioo <203048277+tomaioo@users.noreply.github.com>
|
|
Owner
|
Closing: PR submitted by AI bot not reviewed by their owner. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Security: Command injection risk in privileged shell command construction
Problem
Severity:
High| File:macapp/src/rinoh_macapp/app.py:L29The macOS helper builds a shell command string (
create_link) using.format()and then executes it via AppleScriptdo shell script ... with administrator privileges. Because arguments are interpolated into a single shell string without robust escaping/quoting, a path containing shell metacharacters (for example, a crafted app install path with quotes or;) could alter the command executed as admin.Solution
Avoid building a shell command string. Execute privileged operations with argument-safe APIs (e.g., a dedicated helper binary/script invoked with fixed argv), or strictly shell-escape each value with
shlex.quote()before interpolation. Also validate thatrinoh_pathandlink_pathcontain only expected characters.Changes
macapp/src/rinoh_macapp/app.py(modified)