23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
# Adversarial Bug Report: parametrize-base-branch
|
|||
|
|
|
||
|
|
## A1 — Git injection via base_branch value
|
||
|
|
|
||
|
|
`base_branch` values like `"; rm -rf /"` or `"main\norigin/main"` are passed through to `subprocess.run` in list mode. The entire value is a single argv element — no shell expansion, no injection. Git will attempt to resolve the string as a revision name and fail (fatal: bad revision), which triggers the WARNING-skip path. No exploit.
|
||
|
|
|
||
|
|
**Verdict**: no vector. List-mode subprocess.run is safe by construction.
|
||
|
|
|
||
|
|
## A2 — Non-string base_branch (int, bool) coerce to string
|
||
|
|
|
||
|
|
`42` → `"42"`, `True` → `"True"`. Both are valid git ref names (a tag named `42` or `True` would resolve). The WARNING notifies the operator. No crash, no silent misbehavior.
|
||
|
|
|
||
|
|
**Verdict**: acceptable. The WARNING is a signal to fix the config.
|
||
|
|
|
||
|
|
## A3 — Empty base_branch falls back to main
|
||
|
|
|
||
|
|
`""` → `"main"` with WARNING. Operator typed it intentionally or accidentally; either way the drift gate works on `main`. No data loss.
|
||
|
|
|
||
|
|
**Verdict**: correct per D-B4.
|
||
|
|
|
||
|
|
## No BLOCKERS
|
||
|
|
|
||
|
|
Proceed to doc_review.
|