CVE-2026-102289: zizmor debug logging prints GitHub credentials in cleartext

CVE-2026-102289 · Severity: high · CVSS 4 · Published 2026-11-09

zizmor is a GitHub audit tool that accepts authentication tokens to access repositories and perform security scans. When debug logging is enabled with a single `-v` flag, the tool prints GitHub access tokens in cleartext to standard error. An attacker who gains access to logs or terminal output containing this debug information can steal credentials and access private repositories or modify GitHub resources depending on the token's scope.

Vendors: PyPI.

Quick answers

Is CVE-2026-102289 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-102289 being exploited in the wild.
How severe is CVE-2026-102289?
High severity, with a CVSS score of 4, published 9 November 2026.
Which products and versions are affected?
zizmor (PyPI) = 1.27.0, ECOSYSTEM:introduced=1.27.0,fixed=1.28.0; Zizmor 1.27.0.
Is there a fix for CVE-2026-102289?
Yes. zizmor (PyPI): upgrade to 1.28.0 or later. Until then: Avoid using --verbose or -v flag when supplying GitHub credentials via environment variables or command-line options. Keep stderr logs private and do not paste complete debug output into public issues; instead, redact or regenerate credentials before sharing logs with maintainers. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-102289 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-102289?
Check whether you run zizmor (PyPI) or Zizmor at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • zizmor (PyPI): upgrade to 1.28.0 or later
    pip install "zizmor>=1.28.0"

Avoid using --verbose or -v flag when supplying GitHub credentials via environment variables or command-line options. Keep stderr logs private and do not paste complete debug output into public issues; instead, redact or regenerate credentials before sharing logs with maintainers.

Technical details

The vulnerability stems from a derived Debug implementation on the App configuration structure that includes a GitHubToken field. When tracing::debug!("app: {app:?}") is called, the entire parsed configuration including the plaintext token is written to stderr. The token is populated from environment variables (GH_TOKEN, GITHUB_TOKEN, ZIZMOR_GITHUB_TOKEN) or CLI options before the debug event is emitted. This affects online operation and --no-online-audits mode; only explicit --offline clears the token beforehand. Exploitation requires the user to enable debug logging (-v or RUST_LOG directive) while supplying a credential, and for stderr to reach an attacker.

Affected products

  • zizmor zizmor 1.27.0

Identifiers

  • CVE-2026-102289
  • GHSA-f42p-wjw5-97qh

Timeline

  • 2026-11-09: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.