Skip to content

Fix command injection in release workflow (CVE)#677

Merged
XciD merged 1 commit intomainfrom
fix/workflow-command-injection
Mar 2, 2026
Merged

Fix command injection in release workflow (CVE)#677
XciD merged 1 commit intomainfrom
fix/workflow-command-injection

Conversation

@XciD
Copy link
Member

@XciD XciD commented Mar 2, 2026

Summary

  • Fix command injection vulnerability in .github/workflows/release.yml (HackerOne #3581567, severity High 8.8)
  • ${{ github.event.inputs.tag }} was interpolated directly in run: blocks, allowing arbitrary RCE via crafted tag input (e.g. v0.1.0; id; cat /etc/passwd;#)
  • Moved all 6 occurrences to env: variables so the value is passed as a shell environment variable instead of being interpolated into the script

Jobs fixed

  • linux — "Update version in toml" step
  • musllinux — "Update version in toml" step
  • windows — "Update version in toml" step
  • macos — "Update version in toml" step
  • sdist — "Update version in toml" step
  • github-release — "Create GitHub Release" step (gh release create)

Move github.event.inputs.tag from direct shell interpolation to env
variables in all jobs (linux, musllinux, windows, macos, sdist,
github-release). Direct ${{ }} interpolation in run: blocks allows
arbitrary command execution via crafted tag inputs.
@XciD XciD marked this pull request as ready for review March 2, 2026 19:10
@XciD XciD merged commit e66dcef into main Mar 2, 2026
7 checks passed
@XciD XciD deleted the fix/workflow-command-injection branch March 2, 2026 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants