security: remove vulnerable update_pylon_issue.yml workflow#2206
security: remove vulnerable update_pylon_issue.yml workflow#2206
Conversation
This workflow interpolated `${{ github.event.comment.body }}` directly
into a `run:` shell step, which allowed any GitHub user to execute
arbitrary code on the runner with the workflow's GITHUB_TOKEN by
posting a crafted issue/PR comment. That vector was exploited on
2026-04-24 to spoof PRs and publish a malicious package.
Removing the workflow entirely (rather than patching) since its only
function was auto-flipping a Pylon ticket to "waiting_on_you" on
comment, which can be reintroduced safely later via the env-var
indirection pattern and an author_association gate.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
👋 @haritamar |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Disabled knowledge base sources:
📝 WalkthroughWalkthroughA GitHub workflow file that synchronized issue comments with a Pylon ticket tracking system has been removed. The workflow previously listened for issue comment events, extracted ticket identifiers, and updated ticket state via the Pylon API. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
.github/workflows/update_pylon_issue.yml, which contained a GitHub Actions script-injection vulnerability.echo \"Comment Body: \${{ github.event.comment.body }}\"interpolated the comment body directly into a shellrun:block, letting any GitHub user execute arbitrary code on the runner with the workflow'sGITHUB_TOKEN(and other secrets) by posting a crafted comment.elementary-data 0.23.3to PyPI.Why a full delete (not a patch)
The workflow's only function was flipping a Pylon ticket state to
waiting_on_youon every issue/PR comment. Removing it stops the bleeding now; if the Pylon integration is still wanted, it should be reintroduced separately with:env: COMMENT_BODY: \${{ github.event.comment.body }}+\"\$COMMENT_BODY\"in the script), andauthor_associationgate (e.g. onlyOWNER/MEMBER/COLLABORATOR) so untrusted commenters can't trigger it.Follow-ups not in this PR
elementary-data 0.23.3on PyPI.PYLON_API_KEY).api-automated-upd-1777068796,api-automated-upd-1777069005,api-spoof-upd-1777069022and close PRs Automated Update: release/v0.23.2 (#2188) #2202, Automated Update: release/v0.23.2 (#2188) #2203, Automated Update: release/v0.23.2 (#2188) #2204.\${{ github.event.* }}→run:pattern.Test plan
Summary by CodeRabbit