Prevent issue content from executing shell commands in the release worker #308

Merged
rockachopa merged 1 commits from timmy/307-prevent-issue-content-from-executing-shell-comma into main 2026-08-08 14:15:09 +00:00
Member

Closes #307

Product/security improvement

  • execute release-worker commands as argument vectors with no shell
  • carry untrusted issue title/body only in environment values
  • validate command configuration before claiming work
  • document trusted wrapper-script semantics

TDD evidence

  • RED: shell metacharacter argv regression failed because no output file was produced under shell=True
  • RED: malicious issue-content boundary test observed string commands instead of argv
  • GREEN focused: python3 -m pytest tests/test_release_engine.py -q — 14 passed
  • GREEN full: python3 -m pytest tests/ -q — 545 passed
Closes #307 ## Product/security improvement - execute release-worker commands as argument vectors with no shell - carry untrusted issue title/body only in environment values - validate command configuration before claiming work - document trusted wrapper-script semantics ## TDD evidence - RED: shell metacharacter argv regression failed because no output file was produced under `shell=True` - RED: malicious issue-content boundary test observed string commands instead of argv - GREEN focused: `python3 -m pytest tests/test_release_engine.py -q` — 14 passed - GREEN full: `python3 -m pytest tests/ -q` — 545 passed
rockachopa added 1 commit 2026-08-08 14:14:15 +00:00
security: isolate release issue content from shell execution (#307)
All checks were successful
CI / lint (pull_request) Successful in 29s
CI / build-frontend (pull_request) Successful in 5s
7d633e67e8
rockachopa merged commit 6b99d4f171 into main 2026-08-08 14:15:09 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#308
No description provided.