π‘οΈ Sentinel: [HIGH] Fix command injection in git search #25
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.
π¨ Severity: HIGH
π‘ Vulnerability: Command Injection in
src/utils/git.ts. ThesearchCommitsfunction (and others) usedchild_process.execwith user-supplied input (search query) interpolated into the command string. This allowed execution of arbitrary shell commands.π― Impact: An attacker (or malicious LLM output) could execute arbitrary commands on the user's machine by crafting a malicious search query.
π§ Fix: Refactored
src/utils/git.tsto usechild_process.execFileinstead ofexec. This executes thegitbinary directly without spawning a shell, and passes arguments as an array, neutralizing shell injection attacks.β Verification: Added
src/utils/__tests__/git_security.spec.tsto verify thatexecFileis used and arguments are passed safely. Updatedsrc/utils/__tests__/git.spec.tsto mockexecFilewhile preserving all existing test coverage. All tests pass.PR created automatically by Jules for task 6771944921355609402 started by @kratos06
Summary by cubic
Fixed a high-severity command injection in git search by switching from child_process.exec to execFile with array args. This removes shell usage and blocks arbitrary command execution via malicious search queries.
Written for commit 39e5a1e. Summary will update on new commits.