Repository navigation
π‘οΈ Sentinel: [security improvement] Add timeout to subprocess.run to prevent unbounded hangs - #670
Conversation
Adding a 15s timeout to the git subprocess in `check_adr_cross_ref.py` to prevent potential indefinite hangs and resource exhaustion during hook execution. Co-authored-by: wryenmeek <6856065+wryenmeek@users.noreply.github.com>
|
π 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 New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
βΉοΈ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with π while any review is running, comments if it has suggestions, and reacts with π once all reviews finish with no findings. |
There was a problem hiding this comment.
π‘ Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e165a1054d
βΉοΈ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with π.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| result = subprocess.run( | ||
| ["git", *args], capture_output=True, text=True, timeout=15 |
There was a problem hiding this comment.
Declare the timeout in the write-surface matrix
This adds a timeout-triggered hard-failure path to an executable scripts/** surface, but the commit leaves the dedicated scripts/hooks/check_adr_cross_ref.py matrix row unchanged, so its declared failure contract still mentions only the ADR status-cascade violation. Update that row to document subprocess timeout handling as required for changes to executable surfaces.
AGENTS.md reference: AGENTS.md:L86-L86
Useful? React with πΒ / π.
π¨ Severity: MEDIUM
π‘ Vulnerability: External command execution via
subprocess.runwithout a timeout leaves the script vulnerable to indefinite hanging, potentially causing DoS or unbounded pipeline waits.π― Impact: An unresponsive git command could hang the pre-commit hook forever.
π§ Fix: Added a
timeout=15argument tosubprocess.runand handledsubprocess.TimeoutExpiredsecurely.β Verification: Ran
pytest tests/locally to ensure no regressions. The change prevents unbounded hangs by gracefully exiting if the process exceeds the 15-second threshold.PR created automatically by Jules for task 15812909212529746040 started by @wryenmeek