test(git): Explicitly test for git injection attacks#17253
Conversation
|
r? @weihanglo rustbot has assigned @weihanglo. Use Why was this reviewer chosen?The reviewer was selected based on:
|
There was a problem hiding this comment.
There aren't any other user controlled parameters to git. It would be good to harden this with --end-of-options but we would then need to set a minimum git version so figured I'd pass for now as the needed versions aren't as universally available yet.
This reminds me: What is the minimal supported Git version we have?
There was a problem hiding this comment.
I'm not aware of us specifying it or what it would be.
This comment has been minimized.
This comment has been minimized.
See https://nesbitt.io/2026/07/21/end-of-options.html While Cargo does support using the git cli, we are not subject to this because - we require URLs to be used in the `Cargo.toml`, `.cargo/config.toml` parser for git sources - we always prefix branches, revs, and tags or don't use them Tests are added to demonstrate this. I wasn't exhaustive (`patch`, `tag`, more `rev` kinds) but figured this was approriate based on source code inspection. There aren't any other user controlled parameters to git. It would be good to harden this with `--end-of-options` but we would then need to set a minimum git version so figured I'd pass for now as the needed versions aren't as universally available yet.
|
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
What does this PR try to resolve?
See https://nesbitt.io/2026/07/21/end-of-options.html
While Cargo does support using the git cli, we are not subject to this because
Cargo.toml,.cargo/config.tomlparser for git sourcesTests are added to demonstrate this.
I wasn't exhaustive (
patch,tag, morerevkinds) but figured this was approriate based on source code inspection.There aren't any other user controlled parameters to git. It would be good to harden this with
--end-of-optionsbut we would then need to set a minimum git version so figured I'd pass for now as the needed versions aren't as universally available yet.How to test and review this PR?