Skip to main content

@zuke/core EUVDEUVD-2026-114136

| CVE-2026-119290 HIGH
Insertion of Sensitive Information into Log File (CWE-532)
2026-10-30 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    View public GitHub Actions run
  2. Exploit
    Open persisted GITHUB_STEP_SUMMARY artifact
  3. Impact
    Harvest cleartext secret() credential

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log data sanitization
Exploitation Conditions

Three concrete prerequisites must all hold: (1) the build runs under GitHub Actions (runs outside Actions write no job summary and are unaffected); (2) the build calls reportSummary(...) with a note whose value derives from a secret() parameter, e.g. a deploy target reporting an endpoint or image reference that embeds a resolved credential (builds that never place secret-derived text in a summary are unaffected); and (3) the workflow run is viewable by the attacker - on a public repository this is everyone with no account, while a private repository limits exposure to those who can already view the run. GitHub Actions ::add-mask:: directives do NOT limit this because they filter only the runner log stream, not the summary file the build writes. The principal limiting factor is that placing secret-derived text in a summary note is a non-default build-authoring choice, not behavior of a stock configuration.

Impact

CVSS 3.1 base score is 7.5 (HIGH) driven entirely by a confidentiality impact (C:H, I:N, A:N) over a network vector with no privileges or user interaction (AV:N/AC:L/PR:N/UI:N), which is consistent with CWE-532 information exposure: on a public repository anyone - including unauthenticated viewers - can read the leaked secret() value from the persisted GITHUB_STEP_SUMMARY artifact. However, the raw CVSS understates an important precondition: this only occurs when a build running under GitHub Actions actually places secret-derived text in a reportSummary(...) note, so the network-unauthenticated profile applies only to that specific, non-default authoring pattern. The vuln.today decision label is 'this_week' (not act_now/emergency). No EPSS score, no CISA KEV listing, and no public exploit code are present in the input - the only references are the GHSA advisory, PR #547, the fix commit, and the release tag, all of which are remediation artifacts rather than exploit code. The signals are therefore internally consistent and point to a real but conditional disclosure issue rather than mass-exploitable RCE: treat it as a credible leak-and-rotate priority for teams that run Zuke in public GitHub Actions workflows, and lower priority for everyone else. Note that absence of EPSS/KEV does not imply safety; it reflects a niche product that automated exploitation telemetry is unlikely to cover.

Exploit ScenarioDerived

A public GitHub repository runs a Zuke (@zuke/core < 1.51.0) build under GitHub Actions that reports a summary note whose value embeds a secret() - for example a deploy target reporting the published image reference or endpoint that contains a resolved registry token. writeJobSummary appends that note to GITHUB_STEP_SUMMARY without the redactor, so the credential appears in cleartext in the durable run summary while the console and run record show [redacted]. Any unauthenticated person who opens the workflow run reads the secret, and it stays exposed until the run is deleted. No public exploit identified at time of analysis; reproduction is trivial and requires only viewing the run.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Zuke's @zuke/core package before 1.51.0 writes rendered reportSummary(...) notes straight into the GitHub Actions job summary file without passing them through the run's secret redactor, so a note built from a resolved secret() value is published in cleartext. Anyone who can view the workflow run can read it - on a public repository that means unauthenticated viewers - and the summary artifact persists on the run until it is deleted. Exposure requires a build running under GitHub Actions that deliberately places secret-derived text in a summary note; builds that never summarize secrets, and runs outside GitHub Actions, are unaffected, and no public exploit has been identified at time of analysis (the issue is a disclosure defect rather than something an attacker triggers remotely).

RemediationAI

Vendor-released patch: upgrade to @zuke/core 1.51.0, where writeJobSummary applies the run's redactor to the rendered Markdown before appending it to GITHUB_STEP_SUMMARY, matching the console and persisted-run sinks; see the advisory at https://github.com/zuke-build/zuke/security/advisories/GHSA-42wp-rrh6-vc23 and the release at https://github.com/zuke-build/zuke/releases/tag/core-v1.51.0. If upgrading is not immediately possible, the vendor's stated workaround is to stop placing secret-derived values in reportSummary(...) notes - compose the note from non-secret parts or report a fingerprint rather than the value; note that this is a change in build authoring and does not retroactively cover runs already published. Relying on ::add-mask:: is not a mitigation, since it masks only the runner log stream and not the summary file. If a secret may already have been leaked this way, rotate the credential: the job summary remains attached to the run and stays readable until the run is deleted, and editing the workflow does not retract what a previous run published.

Affected VersionsENISA

zuke < 1.51.0

Affected Packages

euvd zuke fix: 1.51.0

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

This is CWE-532 (Insertion of Sensitive Information into Log File) applied to a CI artifact. Zuke's secret() parameters carry a documented guarantee that the resolved value is redacted from all output; that guarantee is implemented by a Redactor that the reporter applies to console output and that the run-state writer applies before persisted notes are stored. The GitHub Actions job summary sink bypassed that pipeline: writeJobSummary serialised the rendered Markdown directly into the file referenced by GITHUB_STEP_SUMMARY, so the same value that printed as [redacted] on the terminal and in the run record appeared verbatim in the summary. The ::add-mask:: workflow commands Zuke emits are irrelevant to this path because they filter only the runner's log stream, not a file the build itself writes, and the runner performs no filtering on that file. The fix (PR #547, commit a46fd72) threads the run's Redactor into the single writeJobSummary call site and redacts the Markdown before appending; the same pull request also adds workflow-command escaping helpers (escapeData, escapeLine, escapeProperty) that neutralise ::command:: and legacy ##[command] sequences in failure messages and summary rows. Confirmed prerequisites: the build must run under GitHub Actions, must call reportSummary(...) with a note whose value derives from a secret() parameter (for example a deploy target reporting an endpoint or image reference that embeds a credential), and the run must be viewable by the party who reads the summary. The trigger is a build-authoring choice, not stock behaviour.

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

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

Once a secret-derived summary note exists, any public-run viewer reads it unauthenticated (PR:N), but that note-authoring precondition is outside the attacker's control, so AC:H; only confidentiality is affected.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 17:02 EUVD
CVE Published
Oct 30, 2026 - 15:50 cve.org
HIGH 7.5

DescriptionCVE.org

Zuke is a code-first, strongly typed build automation system for Deno. Prior to 1.51.0, @zuke/core writes rendered reportSummary(...) notes to GITHUB_STEP_SUMMARY through writeJobSummary without applying the redactor that protects resolved secret() values in console and persisted run output. A GitHub Actions build that places secret-derived text in a summary note can publish credentials in cleartext to everyone able to view the workflow run, including unauthenticated viewers of a public repository, and the durable summary remains exposed until the run is deleted. GitHub Actions masking directives do not protect the summary file, while runs outside GitHub Actions and builds that do not summarize secret-derived text are not affected. This issue is fixed in version 1.51.0.

Technical POC Analysis

CWE-532, insertion of sensitive information into a log file.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

The @zuke/core package (versions before 1.51.0) exposes secret values in GitHub Actions job summaries, making them visible to anyone who can view the workflow run-including unauthenticated users on public repositories-and these summaries persist until deleted. This defect could leak credentials used in builds that summarize secret-derived text, potentially compromising sensitive systems and data.

Business Impact: High
Compensating Controls

Apply vendor patch: upgrade to @zuke/core 1.51.0 or later. As an interim measure, avoid including secret-derived text in summary notes and restrict access to workflow runs.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Low
niche code-first build tool for Deno, limited adoption
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy