CVE-2025-49013
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedWilderForge is a Wildermyth coremodding API. A critical vulnerability has been identified in multiple projects across the WilderForge organization. The issue arises from unsafe usage of `${{ github.event.review.body }}` and other user controlled variables directly inside shell script contexts in GitHub Actions workflows. This introduces a code injection vulnerability: a malicious actor submitting a crafted pull request review containing shell metacharacters or commands could execute arbitrary shell code on the GitHub Actions runner. This can lead to arbitrary command execution with the permissions of the workflow, potentially compromising CI infrastructure, secrets, and build outputs. Developers who maintain or contribute to the repos WilderForge/WilderForge, WilderForge/ExampleMod, WilderForge/WilderWorkspace, WilderForge/WildermythGameProvider, WilderForge/AutoSplitter, WilderForge/SpASM, WilderForge/thrixlvault, WilderForge/MassHash, and/or WilderForge/DLC_Disabler; as well as users who fork any of the above repositories and reuse affected GitHub Actions workflows, are affected. End users of any the above software and users who only install pre-built releases or artifacts are not affected. This vulnerability does not impact runtime behavior of the software or compiled outputs unless those outputs were produced during exploitation of this vulnerability. A current workaround is to disable GitHub Actions in affected repositories, or remove the affected workflows.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceCode injection vulnerability in GitHub Actions workflows where user-controlled variables like `${{ github.event.review.body }}` are used directly in shell script contexts without sanitization, allowing arbitrary command execution on the CI runner.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- User interaction
- None
- Scope
- Changed
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Find workflows using pull request review bodySearch your repository for workflows (YAML files in .github/workflows/) that reference 'github.event.review.body'. Use grep or GitHub's code search: `grep -r "github.event.review.body" .github/workflows/`Affected if Any workflow file contains references to github.event.review.body
-
Verify workflow triggers on review eventsOpen each workflow file found and check if it includes 'pull_request_review' in the 'on:' triggers sectionAffected if The workflow triggers on pull_request_review events and uses github.event.review.body
-
Inspect how review body is used in run stepsExamine each 'run:' step that uses github.event.review.body. Look for direct shell command insertion such as: run: echo ${{ github.event.review.body }} or run: ./script.sh "${{ github.event.review.body }}"Affected if The review body is used directly in run: steps without escaping or as a shell variable
-
Check for unsafe shell interpolation patternsLook for vulnerable patterns: unquoted variable usage, concatenation into commands, or embedding in eval-like contexts. Check for bash shell usage where the body could break out of stringsAffected if The review body is used in shell contexts where it could break out of strings or execute arbitrary commands (e.g., using it in backticks, $(), or unquoted in command arguments)
-
Identify if workflow has write permissionsCheck the 'permissions:' block or default workflow permissions. Determine what scopes (contents, issues, pull-requests, etc.) are granted to the workflowAffected if The workflow has elevated permissions that could amplify the impact of command injection
Your environment is affected if you have GitHub Actions workflows that use github.event.review.body directly in shell script run steps without sanitization or proper escaping.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedSanitize all user-controlled inputs before using them in shell contexts, or disable/replace affected GitHub Actions workflows until proper input validation is implemented.
- Identify all GitHub Actions workflow files (.yml/.yaml in .github/workflows/) in affected repositories that use `${{ github.event.review.body }}` or other user-controlled variables in shell script contexts (run: steps)
- Remove or sanitize the unsafe variable usage: instead of directly embedding `${{ github.event.review.body }}` in shell commands, first assign it to an environment variable using `env: REVIEW_BODY: ${{ github.event.review.body }}` and then reference it as `${{ env.REVIEW_BODY }}`
- Alternatively, use GitHub's built-in `${{ toJSON() }}` function to properly escape the variable before shell execution, e.g., `run: echo '${{ toJSON(github.event.review.body) }}'`
- Review all other GitHub Actions workflows for similar patterns using other user-controlled inputs like `github.event.issue.body`, `github.event.comment.body`, `github.event.pull_request.title`, etc.
- Commit the fixed workflow files and test that the workflows still function correctly
- Alternatively, if workflows are not essential, disable GitHub Actions in repository settings or delete the affected workflow files entirely as a workaround
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation8.0 h
- Testing4.0 h
- Review / QA2.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $5,120.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2025-49013 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2025-49013 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data