Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessFork target repository on GitHub
-
DeliveryPlant malicious node_modules/.bin/danger in fork
-
ExploitOpen pull request triggering pull_request_target
-
Executionentrypoint.sh runs npx from /github/workspace
-
PersistAttacker binary executes in action container
-
ImpactExfiltrate GITHUB_TOKEN and repository secrets
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V13 - Configuration Search path element control
|
| Exploitation Conditions | Requires the downstream consumer to invoke espressif/shared-github-dangerjs at a version prior to 1.0.1 from a workflow triggered by |
| Impact | CVSS 8.2 (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:N) reflects the cross-scope impact: an unauthenticated external attacker (any GitHub user able to open a fork PR) can compromise the integrity of the calling repository, with scope change capturing the leap from the action container into the parent CI/CD trust boundary. UI:R maps to a maintainer or automated workflow triggering CI on the fork PR, which in pull_request_target setups is often automatic. No EPSS, KEV, or SSVC data was supplied and no public exploit identified at time of analysis, but the fix commit publicly documents the exact hijack primitive (CWD-based npx resolution and stray node_modules), which substantially lowers the bar for weaponization against any downstream Espressif repository still on 1.0.0. Real priority is high for organizations that consumed this action via a floating major tag and use pull_request_target; lower for repos pinned to commit SHAs or using only pull_request. |
| Exploit ScenarioDerived | An attacker forks a repository that consumes espressif/shared-github-dangerjs in a pull_request_target workflow, commits a malicious node_modules/.bin/danger (or a node_modules tree shadowing a module the action loads) to their fork, and opens a pull request. When the base repo's workflow runs, entrypoint.sh's |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 28, 2026
Untrusted search path in Espressif's shared-github-dangerjs GitHub Action prior to 1.0.1 allows a fork pull request, when processed by a pull_request_target workflow, to substitute attacker-controlled binaries and Node.js modules for the action's own code. Exploitation yields code execution inside the action container with access to repository secrets and write-scoped GITHUB_TOKEN, with no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: 1.0.1, which invokes danger via the absolute path /node_modules/.bin/danger and runs rm -rf /github/workspace/node_modules before execution to neutralize fork-supplied modules; upgrade by bumping the uses: reference in calling workflows to espressif/shared-github-dangerjs@1.0.1 (or, preferably, pin to the fix commit SHA d7424080) per the advisory at https://github.com/espressif/shared-github-dangerjs/security/advisories/GHSA-wm3p-pv54-6w73. If immediate upgrade is not possible, switch the calling workflow's trigger from pull_request_target to pull_request so secrets and write-scoped tokens are not exposed to fork code (trade-off: the workflow will no longer be able to post Danger comments back to the PR), or gate the job behind an if: github.event.pull_request.head.repo.full_name == github.repository check to skip fork PRs entirely (trade-off: forks receive no Danger feedback). Avoid relying on permissions: read-all alone, since the underlying hijack still executes attacker code in the runner.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is a CWE-427 (Uncontrolled Search Path Element) flaw in entrypoint.sh of the reusable Espressif DangerJS GitHub Action (CPE cpe:2.3:a:espressif:shared-github-dangerjs). The action ran npx danger ci from the caller's workspace after the fork's checkout had been copied into it; because npx resolves binaries relative to the current working directory's node_modules/.bin and Node.js resolves modules from the nearest node_modules tree, a fork PR could supply both a malicious danger binary and arbitrary modules that Node would load in preference to the action's intended code. The danger here is amplified by the pull_request_target trigger, which runs with the base repository's secrets and a privileged GITHUB_TOKEN, unlike the safer pull_request trigger.
Know when Shared Github Dangerjs gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:N
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Espressif Shared GitHub DangerJS is a reusable GitHub Action CI DangerJS workflow for Espressif GitHub projects. Prior to 1.0.1, the action's entrypoint.sh invoked DangerJS from the caller's workspace after copying the fork's checkout into it, creating an untrusted search path for both binary resolution and Node.js module resolution. A fork pull request processed by a pull_request_target workflow could therefore cause fork-supplied code to execute inside the action container in place of the action's own code. This vulnerability is fixed in 1.0.1.
Executive ViewAI
Espressif's shared-github-dangerjs GitHub Action (versions prior to 1.0.1) contains an untrusted search path vulnerability enabling arbitrary code execution within CI/CD pipeline containers during pull request processing. Attackers can inject malicious binaries and modules to capture repository secrets and manipulate code with write-scoped GitHub tokens. Organizations relying on this action for pull request automation face direct threats to code integrity, credential compromise, and supply chain exposure.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict pull_request_target workflows to protected branches only or disable entirely for fork pull requests; (2) Apply least-privilege GITHUB_TOKEN permissions at job level (read-only for contents and pull-requests); (3) Require manual approval for pull_request_target workflow runs; (4) Migrate to alternative dependency scanning tools with stronger isolation and review mechanisms.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-32908
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB