AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 46 Bitcoin

ci: bind version/ref inputs via env before shell in release workflows

Public commit record

What the developer wrote

Authored by SashaMIT

85/100 · Strong
ci: bind version/ref inputs via env before shell in release workflows

Follow-up to the docker/pypi env-binding pass: check-release-tag.yml,
release-build.yml, release-publish.yml and pypi-build.yml still
interpolated inputs.version / github.ref_name directly into run:
blocks (script-injection class per GitHub's hardening guidance).

Bind through env: and reference quoted shell variables instead. Also
drops a dead duplicate CHANGELOG_VERSION assignment in
release-publish.yml that ran before VERSION was set.

Made-with: Cursor

Changelog-None
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit hardens four GitHub release workflows by moving user-controlled values (version strings and branch/tag names) out of shell command text and into environment variables. This closes a class of attack where a maliciously crafted version string or tag name could be interpreted as shell commands, potentially altering release artifacts or stealing repository secrets. The change is defensive and does not claim to fix an active vulnerability.

Recommended action

Treat this as a routine security hardening improvement. Review the workflows to confirm all user-controlled inputs are now env-bound and quoted, verify that no remaining direct interpolations exist in these release workflows, and consider applying the same pattern to other workflows in the repository.

Security signals we found

01

Direct interpolation of GitHub Actions context values into run: shell blocks removed

02

User-controlled inputs (inputs.version, github.ref_name, github.ref_type) bound through env:

03

Shell variables are quoted where used

04

Follow-up to a prior docker/pypi env-binding hardening pass

05

Workflows involved in building and publishing releases were modified

Risk score

Why this scored 46/100

Our methodology →
Potential impact 12/30
Exploitability 8/25
Stealth signal 10/15
Affected reach 6/15
Confidence 7/10
Evidence quality 3/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.