Skip to content

πŸ›‘οΈ Sentinel: [HIGH] Fix command argument injection in repo fork - #23

Closed
google-labs-jules[bot] wants to merge 2 commits into
mainfrom
fix/command-injection-repos-10930767300442977356
Closed

πŸ›‘οΈ Sentinel: [HIGH] Fix command argument injection in repo fork#23
google-labs-jules[bot] wants to merge 2 commits into
mainfrom
fix/command-injection-repos-10930767300442977356

Conversation

@google-labs-jules

Copy link
Copy Markdown

Added -- separator to git clone command in crates/gitlawb-node/src/api/repos.rs to prevent command argument injection.

🚨 Severity: HIGH
πŸ’‘ Vulnerability: User-controlled repository paths were passed directly to git clone without a -- separator, allowing for potential command argument injection.
🎯 Impact: An attacker could potentially inject arbitrary arguments to git clone (e.g., --upload-pack) by crafting repository names or DIDs starting with -, potentially leading to command execution or unauthorized file reads.
πŸ”§ Fix: Added -- to the Command::new("git") arguments list to signal the end of command-line options.
βœ… Verification: cargo test and cargo check verified the code correctly compiles.


PR created automatically by Jules for task 10930767300442977356 started by @euxaristia

Added `--` separator to `git clone` command in `crates/gitlawb-node/src/api/repos.rs` to prevent command argument injection. Since `source_path` and `disk_path` are derived from user-controlled data (`source.owner_did`, `source.name`, `forker_did`, `fork_name`), an attacker could potentially pass options (e.g., `-u` or `--upload-pack`) to `git clone`. Adding `--` explicitly tells Git to treat all subsequent arguments as positional arguments (paths), mitigating the risk.
@google-labs-jules

Copy link
Copy Markdown
Author

πŸ‘‹ Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a πŸ‘€ emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@github-actions

Copy link
Copy Markdown

Thanks for the contribution. A couple of things will help us review this faster:

  • Link the issue this addresses (Closes #123). For protocol changes, open an issue first.
  • This changes Rust source but no tests changed. Tests are required for fixes and strongly encouraged for features.

See CONTRIBUTING.md. Update the PR and these notes will clear automatically.

Added `--` separator to `git clone` command in `crates/gitlawb-node/src/api/repos.rs` to prevent command argument injection. Since `source_path` and `disk_path` are derived from user-controlled data (`source.owner_did`, `source.name`, `forker_did`, `fork_name`), an attacker could potentially pass options (e.g., `-u` or `--upload-pack`) to `git clone`. Adding `--` explicitly tells Git to treat all subsequent arguments as positional arguments (paths), mitigating the risk.

Additionally, updated `h2` dependency to mitigate `cargo audit` reported vulnerability (RUSTSEC-2026-0258).
@euxaristia euxaristia closed this Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant