T08 · Insecure Dependencies
- Location
SKILL.md:27- Finding
GitHub Action Referenced by a Mutable Version Tag
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 27–31
Vulnerability Type: Supply-chain risk caused by an unpinned third-party GitHub Action
Risk Level: Mediumyaml - uses: welove111/proof-of-contribution@v1 with: lightning_address: ${{ secrets.LIGHTNING_ADDRESS }} package_name: 'your-package-name' package_registry: 'npm'Technical Analysis
The documented workflow references the third-party Action through the mutable
v1tag instead of a reviewed, immutable commit SHA. The repository owner can move this tag to a different commit, and compromise of the upstream repository could similarly alter the code resolved by the tag. Consequently, users following the instructions may execute code that differs from the version originally audited.This is security-sensitive because a GitHub Action executes on the workflow runner and receives the configured Lightning address secret as an input. Depending on the surrounding workflow configuration, the Action may also be able to read repository contents, access workflow context, use the permissions granted to
GITHUB_TOKEN, modify workspace files, or communicate with external systems.Attack Path
- A user copies the workflow example into a repository.
- The upstream owner moves
v1to a malicious commit, or an attacker compromises the upstream Action repository and changes the tag. - A subsequent workflow run resolves
welove111/proof-of-contribution@v1to the altered code. - GitHub downloads and executes that code on the workflow runner.
- The malicious Action reads the inputs and other data available to the job, including
LIGHTNING_ADDRESS, and may transmit accessible information externally. - If the workflow grants write permissions, the malicious code may also modify repository resources within the scope of the workflow token.
Impact Assessment
Exploitation permits attacker-controlled code execution in the co ...[truncated 444 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the mutable tag with the full commit SHA of a reviewed Action revision, for example:
yaml - uses: welove111/proof-of-contribution@FULL_40_CHARACTER_COMMIT_SHA - Retain the release version in a comment for maintainability while keeping the executable reference immutable.
- Review the pinned Action source and its transitive dependencies before adoption.
- Use dependency-management tooling, such as Dependabot, to propose controlled SHA updates that receive security review before merging.
- Declare explicit least-privilege workflow permissions, using
permissions: {}by default and enabling only permissions required by the job. - Avoid exposing unrelated secrets to the job and prefer environment-level protections for sensitive workflows.
- Use ephemeral GitHub-hosted runners where possible. If self-hosted runners are necessary, isolate them from sensitive networks and credentials.
- Restrict outbound network access or monitor Action traffic where the runner environment supports such controls.
- Replace the mutable tag with the full commit SHA of a reviewed Action revision, for example:
