Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessHold workflow_dispatch on shared workflow repo
-
DeliveryRead title marker from run list
-
ExploitDispatch same workflow on attacker-controlled branch
-
ExecutionGate adopts substituted run's conclusion
-
ImpactAuthorize unvalidated release or block valid one
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
|
| Exploitation Conditions | Exploitation requires a very specific set of preconditions, all drawn from the advisory: (1) a build that gates a release on @zuke/gh githubWorkflow(...) running in marker (display-title correlation) mode; (2) the dispatched workflow must live in a separate repository whose workflow_dispatch / actions:write permission is held by a party the releasing repository does not equally trust - e.g. a shared org workflow or any repo with more contributors than the one cutting the release; and (3) the attacker must dispatch the same workflow on a ref they control during the gate's wait window. Reading the marker itself needs no special access because it is echoed into a run title visible to anyone who can list the workflow's runs. Limiting factors: this does not affect single-trust-domain setups where actions:write holders are exactly the trusted releasers, does not affect the best-effort mode in the same way, and is closed by upgrading to 1.10.0; branch protection does NOT mitigate it because workflow_dispatch is not gated by branch protection. Affected versions: @zuke/gh < 1.10.0. |
| Impact | CVSS 3.1 base score is 7.1 (High) with vector AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:L, meaning network-reachable but high attack complexity, requiring some privilege, and a scope change - integrity (I:H) is the dominant impact with a secondary availability impact (A:L) and no confidentiality impact (C:N). There is no CISA KEV listing and no EPSS score in the provided data, so exploitation probability cannot be quantified; the status is no public exploit identified at time of analysis (the four references are the GHSA advisory, PR #542, the fix commit, and the release tag - all patch artifacts, not exploit code). The vuln.today decision label is this_week, indicating elevated but not emergency urgency, which is consistent with a high-integrity-impact flaw whose exploitation is gated behind a specific non-default trust configuration (AC:H). The real-world priority is conditional rather than universal: it is a genuine integrity threat to release pipelines only where @zuke/gh githubWorkflow(...) runs in marker mode AND the dispatched workflow lives in a repository whose workflow_dispatch permission is held by a less-trusted party. One signal conflicts with the data: the 'Information Disclosure' tag contradicts the CVSS vector (C:N) and CWE-345 - the actual impact is authenticity/integrity of the gated release, not disclosure, so that tag should be disregarded. |
| Exploit ScenarioDerived | An attacker who holds workflow_dispatch on a shared or multi-contributor workflow repository reads the display-title marker from that workflow's publicly visible run list, then dispatches the same workflow on a branch they control so the gate adopts the attacker's run. A passing substituted run authorizes a release whose tested code never actually ran, while deliberately failing or cancelling the run blocks a legitimate release. No public exploit code is identified; the mechanism is described in detail in the GHSA advisory, and the high attack complexity reflects the required cross-trust-domain configuration rather than a difficult trigger. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Release-gate substitution in the Zuke GitHub orchestration package @zuke/gh before 1.10.0 lets a party who can dispatch the external workflow satisfy or block a release gate without the gated suite ever validating the shipped artifact. The githubWorkflow(...) gate located the run it had just dispatched purely by a display-title marker echoed into the run list, so anyone able to read that marker and dispatch the same workflow could raise a substitute run whose conclusion the gate adopted; a passing run authorizes an unvalidated release and a failed or cancelled run holds a valid release closed, and the persisted run ID keeps the substitution across build resume. Exploitation requires marker-mode use plus a separate repository whose workflow_dispatch / actions:write holders are not equally trusted by the releasing repository; no public exploit code was identified at time of analysis, and the issue is fixed in 1.10.0. CVSS 3.1 base score 7.1 (High) with integrity as the dominant impact.
RemediationAI
Vendor-released patch: upgrade @zuke/gh to 1.10.0 (release tag gh-v1.10.0), which is the only complete fix - both correlation modes then require a workflow_dispatch event, the ref named by the gate and creation inside the discovery window, and two surviving candidates now cause an explicit refusal naming both. Details are in the advisory https://github.com/zuke-build/zuke/security/advisories/GHSA-rrc8-3g8p-cm8p, PR https://github.com/zuke-build/zuke/pull/542 and commit https://github.com/zuke-build/zuke/commit/4257b0bc5ef5e387a44f913349646d4baccd1654. If upgrading is not immediately possible, the vendor's documented workarounds are to treat the gate result as advisory rather than authorizing - requiring a human approval between the gate and the release, at the cost of manual sign-off on every publish - or to dispatch only workflows in a repository whose actions:write holders are exactly the people already trusted to release, which removes the substitution path entirely but rules out shared cross-team workflows. Where a gate must authorize across a trust domain, narrow who holds actions:write on the workflow's repository, place the workflow behind an environment with required reviewers, or have the workflow check its own github.actor; these are documented in docs/orchestration.md. Note that branch protection does not mitigate this issue, because a workflow_dispatch is not gated by branch protection, and that the 1.10.0 fix still leaves an actions:write holder who can dispatch the same workflow on the same ref inside the same window indistinguishable from the legitimate run.
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
Zuke is a code-first, strongly typed build automation system for Deno, and @zuke/gh provides GitHub Actions orchestration. Its githubWorkflow(...) helper dispatches a workflow in another repository and waits on the conclusion so a build can gate publishing on a test suite that lives elsewhere. The vulnerable correlation logic, classified as CWE-345 (Insufficient Verification of Data Authenticity), stamped a marker into the workflow_dispatch inputs and then adopted the first run whose display title equalled that marker - without checking the event that produced the run, the ref it ran on, or its creation time. The marker is echoed into a run title readable by anyone who can list that workflow's runs, so it authenticates nothing; marker mode was therefore weaker than the best-effort mode, which at least required a creation window. The 1.10.0 fix (PR #542, commit 4257b0bc) unifies both modes on a single predicate requiring a workflow_dispatch event, the named ref and creation inside the discovery window, applied during the scan so a newer foreign run cannot mask the genuine one, and refuses with a named conflict when two candidates survive. The fix binds a run to the shape of the dispatch rather than to a provable identity, so an actions:write holder able to dispatch the same workflow on the same ref within the same window remains indistinguishable, and branch protection does not close that gap because workflow_dispatch is not gated by it. Per the assessed vector AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:L, the flaw is network-reachable but of high attack complexity, requires a low-privileged authenticated actor, changes scope, and yields high integrity impact with limited availability impact and no confidentiality impact.
Know when Zuke 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:H/PR:L/UI:N/S:C/C:N/I:H/A:L
Dispatching requires actions:write on the external repo (PR:L) in a non-default cross-trust configuration (AC:H); the gate authorizes across a trust boundary (S:C) with high integrity impact and release-blocking availability loss, no confidentiality impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Zuke is a code-first, strongly typed build automation system for Deno. Prior to 1.10.0, the @zuke/gh githubWorkflow(...) gate correlates a dispatched workflow run using only a display-title marker that is visible in the workflow run list and can be copied by another dispatcher. In configurations where the external workflow repository grants workflow_dispatch permission to a party not equally trusted by the releasing repository, an attacker can dispatch a run with the marker and cause the gate to adopt its conclusion without verifying the event, ref, or creation window. A passing substituted run can authorize an unvalidated release, while a failed or cancelled run can block a valid release, and the persisted adopted run ID preserves the substitution across build resume. This issue is fixed in version 1.10.0.
Technical POC Analysis
CWE-345, Insufficient Verification of Data Authenticity.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-119289 in Zuke's @zuke/gh GitHub orchestration package (before 1.10.0) allows a party with workflow dispatch rights in a separate repository to substitute a release gate run, enabling unvalidated releases or denial of valid ones. This undermines release integrity, requiring leadership attention due to potential for unauthorized software distribution and supply chain risks.
Vendor-released patch: 1.10.0
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
Arbitrary command execution on hosts running the @zuke/core MCP server in registry mode is possible because command-form
Zuke's @zuke/core package before 1.51.0 writes rendered reportSummary(...) notes straight into the GitHub Actions job su
Argument injection in Zuke's @zuke/core package (all versions before 1.51.0) on Windows lets attacker-influenced text pa
Symbolic-link following in Zuke CLI (@zuke/cli prior to 1.4.0) allows a repository, template, or archive supplied by an
EUVD-2026-114134
NVD
CVE.org
EPSS
GitHub
Exploit-DB