Security Digest · Critical advisory (no CVE assigned)

GHSA-x6gv-2rvh-qmp6: m00nl1ght-dev/steam-workshop-deploy: Exposure of Version-Control Repository to an Unauthorized Control Sphere and Insufficiently Protected Credentials

Summary The steam-workshop-deploy github action does not exclude the .git directory when packaging content for deployment and provides no built-in way to do so.

CVSS 10.0 Critical GitHub-reviewed · critical

Should you act?

  • Only if you depend on one of the packages below, directly or transitively, in a vulnerable version. Check your lockfile with grep -rn 'uses: <owner>/<action>' .github/workflows.
  • No CVE has been assigned, so it will not appear in CVE-based scanners that ignore GitHub advisories. npm audit, pip-audit and Dependabot do read GitHub advisories.

Affected packages

EcosystemPackageVulnerableFirst fixed
GitHub Actionsm00nl1ght-dev/steam-workshop-deploy< 44
GitHub ActionsBoldestDungeon/steam-workshop-deploy< 2.0.02.0.0

Details

Summary The steam-workshop-deploy github action does not exclude the .git directory when packaging content for deployment and provides no built-in way to do so. If a .git folder exists in the target directory (e.g., due to a local Git repo, custom project structure, or via the actions/checkout workflow), it is silently included in the output package. This results in leakage of sensitive repository metadata and potentially credentials, including github personal access tokens (PATs) embedded in .git/config.

Many game modding projects require packaging from the project root as the game expects certain files (assets, configuration, metadata) to be present at specific root-level paths. Consequently, the .git directory often exists alongside these required files and gets packaged unintentionally, especially when using actions/checkout.

While github hosted runners automatically revoke ephemeral credentials at the end of each job, the severity of this issue increases dramatically in other CI environments:

- Self-hosted runners may store long-lived tokens or secrets. - Developers may maintain their own .git folders with embedded PATs or remotes tied to private repositories. - The workflow may run without the actions/checkout action, distributing the .git directory present on the running machine if it exists in the directory.

A real example of an affected mod can be found here: https://github.com/BoldestDungeon/wildermyth-drauven-pcs/security/advisories/GHSA-7j9v-72w9-ww6w

Details Who is affected: - Any user of steam-workshop-deploy operating in an environment where .git exists in the packaging directory. - Any user of steam-workshop-deploy operating in an environment where the actions/checkout workflow is used and then the .git directory is inadvertently generated within the packaging directory (greatly reduced severity due to the ephemeral nature of github actions).

Impact The severity of this issue for downstream components can range from 0.0 (no credentials, sensitive metadata, or private source code were present in the packaging directory) to 10.0 (extremely sensitive, high privilige credentials or source code from private repositories were exposed).

The actual severity depends primarily on the permissions, scope, and nature of the exposed data: Low/none (0.0-3.9):…

CVSS: 10.0 (v3.1) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N

Sources and references

  1. GitHub Advisory GHSA-x6gv-2rvh-qmp6 github.com
  2. github.com github.com
  3. github.com github.com
  4. github.com github.com
  5. github.com github.com
  6. github.com github.com

Critical GitHub Actions advisories · Today’s Security Digest