GHSA-x6gv-2rvh-qmp6: m00nl1ght-dev/steam-workshop-deploy Exposure Of Version-Control Repository To Vulnerability
CRITICALGHSA-x6gv-2rvh-qmp6 is a CRITICAL (CVSS 10.0) exposure of version-control repository to vulnerability (CWE-527: Exposure of Version-Control Repository to an Unauthorized Control Sphere) affecting m00nl1ght-dev/steam-workshop-deploy libraries in the GitHub Actions ecosystem. The issue involves exposure of version-control repository to an unauthorized control sphere and insufficiently protected credentials. Remediation is available by upgrading affected packages to version 4, 2.0.0.
GHSA-x6gv-2rvh-qmp6 at a Glance
Security Impact
CVSS: 10.0
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N).
How to Fix GHSA-x6gv-2rvh-qmp6
To remediate this vulnerability, upgrade all affected m00nl1ght-dev/steam-workshop-deploy dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade m00nl1ght-dev/steam-workshop-deploy to 4
Upgrade BoldestDungeon/steam-workshop-deploy to 2.0.0
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for m00nl1ght-dev/steam-workshop-deploy
How to Check if You Are Affected
To determine whether your application is affected by GHSA-x6gv-2rvh-qmp6, inspect your project dependencies for m00nl1ght-dev/steam-workshop-deploy:
inspect dependencies for m00nl1ght-dev/steam-workshop-deploy
Analyze the terminal output to locate any version of m00nl1ght-dev/steam-workshop-deploy in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 4), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-527: Exposure of Version-Control Repository to an Unauthorized Control Sphere, where the product stores a cvs, git, or other repository in a directory, archive, or other resource that is stored, transferred, or otherwise made accessible to unauthorized actors. In m00nl1ght-dev/steam-workshop-deploy, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
GHSA-x6gv-2rvh-qmp6 Affected m00nl1ght-dev/steam-workshop-deploy Versions
2 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
m00nl1ght-dev/steam-workshop-deploy
|
GitHub Actions |
< 4
|
4
|
|
BoldestDungeon/steam-workshop-deploy
|
GitHub Actions |
< 2.0.0
|
2.0.0
|
References
Frequently Asked Questions
What is GHSA-x6gv-2rvh-qmp6?
Which m00nl1ght-dev/steam-workshop-deploy versions are affected?
What version fixes GHSA-x6gv-2rvh-qmp6?
Is m00nl1ght-dev/steam-workshop-deploy affected?
Is BoldestDungeon/steam-workshop-deploy affected?
What is the CVSS score of GHSA-x6gv-2rvh-qmp6?
What CWE is associated with GHSA-x6gv-2rvh-qmp6?
How can I check GitHub Actions dependencies for GHSA-x6gv-2rvh-qmp6?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-x6gv-2rvh-qmp6",
"modified" : "2025-10-27T16:22:57Z",
"published" : "2025-08-13T23:03:26Z",
"aliases" : [ ],
"summary" : "m00nl1ght-dev/steam-workshop-deploy: Exposure of Version-Control Repository to an Unauthorized Control Sphere and Insufficiently Protected Credentials",
"details" : "## Summary\nThe `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`.\n\nMany 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`.\n\nWhile github hosted runners automatically revoke ephemeral credentials at the end of each job, the severity of this issue increases dramatically in other CI environments:\n\n- Self-hosted runners may store long-lived tokens or secrets.\n- Developers may maintain their own `.git` folders with embedded PATs or remotes tied to private repositories.\n- The workflow may run without the `actions/checkout` action, distributing the `.git` directory present on the running machine if it exists in the directory.\n\nA real example of an affected mod can be found here: https://github.com/BoldestDungeon/wildermyth-drauven-pcs/security/advisories/GHSA-7j9v-72w9-ww6w\n\n## Details\nWho is affected:\n- Any user of `steam-workshop-deploy` operating in an environment where `.git` exists in the packaging directory.\n- Any user of `steam-workshop-deploy` operating in an environment where the [actions/checkout](https://github.com/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).\n\n## Impact\nThe 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).\n\nThe actual severity depends primarily on the permissions, scope, and nature of the exposed data:\n* **Low/none (0.0-3.9)**: Only non-sensitive repository metadata was exposed, no credentials were present, or only public facing code was included.\n* **Medium(4.0-6.9)**: Credentials with limited repository access and/or short lifespan (e.g., ephemeral tokens) were exposed, or non-sensitive private code was disclosed.\n* **High/critical (7.0-10.0)**: Long-lived tokens, organization-wide credentials, or credentials with administrative privileges were exposed, potentially enabling full repository compromise, secret extraction, code tampering, or the complete leak of private repository source code.\n\nAs such, each downstream consumer should independently assess their exposure by reviewing packaged artifacts for the presence of `.git` directories or other credentials, and evaluating both the sensitivity of any credentials found and the confidentiality of any included source code.\n\nConsequences may include:\n - Unauthorized access to git repositories via exposed PATs.\n - Tampering with repository code or metadata.\n - Malicious CI behavior (triggering workflows, reading secrets).\n - Disclosure of commit history, remote origins, or other sensitive internal structure.\n\n## Recommendation\nThis issue should be considered **severe** due to the potential exposure of sensitive tokens and repository metadata. Although most workflows that use `steam-workshop-deploy` also employ `actions/checkout`, which handles tokens and credentials more securely, there are legitimate use cases where `actions/checkout` is not used or where custom `.git` folders exist. Additionally, `actions/checkout` can accept a on-emphemeral tokens as a parameter for its workflow. In such cases, long-lived or sensitive credentials may be packaged and exposed, greatly increasing the risk of unauthorized access and repository compromise. Therefore, this issue should be considered severe regardless of common usage patterns.\n\n**Downstream:**\n- Downstream components should revoke any credentials or PATs associated with workflows or repositories that use this github action\n\n**This Deployment Action**\n\n- [x] The action should exclude `.git/` and other common sensitive file(s) by default from all packaging operations.\n- [x] A `deployignore` or similar mechanism should be introduced to give users finer control of what files or directories are included for deployed artifacts",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "GitHub Actions",
"name" : "m00nl1ght-dev/steam-workshop-deploy"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "4"
} ]
} ]
}, {
"package" : {
"ecosystem" : "GitHub Actions",
"name" : "BoldestDungeon/steam-workshop-deploy"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "2.0.0"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/BoldestDungeon/steam-workshop-deploy/security/advisories/GHSA-x6gv-2rvh-qmp6"
}, {
"type" : "WEB",
"url" : "https://github.com/BoldestDungeon/steam-workshop-deploy/commit/0ba85729da32108e1cc498d1b3d6760857b5c04d"
}, {
"type" : "WEB",
"url" : "https://github.com/m00nl1ght-dev/steam-workshop-deploy/commit/913f0844e2153d798189397036918f4ceb0911e0"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/BoldestDungeon/steam-workshop-deploy"
}, {
"type" : "WEB",
"url" : "https://github.com/BoldestDungeon/steam-workshop-deploy/releases/tag/V2.0.0"
}, {
"type" : "WEB",
"url" : "https://github.com/m00nl1ght-dev/steam-workshop-deploy/releases/tag/v4"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-212", "CWE-522", "CWE-527" ],
"severity" : "CRITICAL",
"github_reviewed" : true,
"github_reviewed_at" : "2025-08-13T23:03:26Z",
"nvd_published_at" : null
}
}