Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-32953

CVE-2025-32953: z80pack Token Disclosure Vulnerability

CVE-2025-32953 is an information disclosure flaw in z80pack that exposes GITHUB_TOKEN through artifact uploads, allowing attackers to push malicious code. This article covers technical details, affected versions, and mitigations.

Published:

CVE-2025-32953 Overview

CVE-2025-32953 affects z80pack, a mature emulator for 8080 and Z80 CPU platforms. Versions 1.38 and prior contain a flawed GitHub Actions workflow that leaks the run's GITHUB_TOKEN. The makefile-ubuntu.yml workflow uses actions/upload-artifact@v4 to publish the entire working directory as the z80pack-ubuntu artifact. That archive includes the auto-generated .git/config file, which embeds the active GITHUB_TOKEN. Because the artifact is downloadable while the workflow is still running, an attacker has a brief window to retrieve it, extract the token, and call the GitHub API to push malicious commits or rewrite release tags. The issue is fixed in commit bd95916.

Critical Impact

An attacker can hijack the repository's GITHUB_TOKEN during an active workflow run and push malicious code or rewrite release commits, compromising software supply chain integrity.

Affected Products

  • z80pack versions 1.38 and prior
  • Repositories using the vulnerable makefile-ubuntu.yml workflow
  • Forks consuming the upstream workflow without modification

Discovery Timeline

  • 2025-04-18 - CVE-2025-32953 published to NVD
  • 2026-04-15 - Last updated in NVD database

Technical Details for CVE-2025-32953

Vulnerability Analysis

The vulnerability is a sensitive information exposure issue [CWE-200] in a GitHub Actions CI workflow. The makefile-ubuntu.yml workflow archives the full checkout directory with actions/upload-artifact@v4. That directory contains the .git/config file written by actions/checkout, which stores the workflow's GITHUB_TOKEN for authenticating subsequent Git operations. Uploading this file as a build artifact transforms an internal credential into a publicly retrievable secret for the duration of the run.

GitHub artifacts created during a workflow are listable and downloadable through the REST API before the workflow completes. An unauthenticated observer monitoring the repository's Actions runs can race the workflow, fetch the artifact, and parse the embedded token from .git/config within seconds.

Root Cause

The root cause is overly broad artifact packaging. The workflow uploads the working directory without excluding the .git metadata directory. actions/checkout persists credentials in .git/config by default, so any process that ships the repository contents downstream also ships the token.

Attack Vector

An attacker watches the target repository's workflow runs through the public Actions API. When a vulnerable run starts, the attacker polls for the z80pack-ubuntu artifact, downloads the zip, extracts .git/config, and reads the http.https://github.com/.extraheader field containing the base64-encoded GITHUB_TOKEN. The token inherits the workflow's permissions, which by default include contents: write, allowing direct pushes, branch updates, and release commit rewrites. Stolen tokens enable supply-chain compromise where downstream consumers pull tampered binaries or source.

The vulnerability is described in prose only as no verified proof-of-concept code is published. See the GitHub Security Advisory GHSA-gpjj-f76m-9x3q for full technical details.

Detection Methods for CVE-2025-32953

Indicators of Compromise

  • Unexpected commits, tag changes, or force-pushes from the github-actions[bot] identity outside known release windows.
  • Artifact downloads of z80pack-ubuntu from IP addresses or accounts not associated with maintainers.
  • Modifications to release commits or rewritten Git history on protected branches.

Detection Strategies

  • Audit GitHub Actions artifact contents for .git/config, .npmrc, .netrc, or other credential-bearing files before publication.
  • Review repository audit logs for git.push events tied to workflow tokens during or immediately after makefile-ubuntu.yml runs.
  • Scan recent artifacts across organization repositories using tooling such as TruffleHog for embedded GITHUB_TOKEN values.

Monitoring Recommendations

  • Enable GitHub branch protection with required signed commits to detect unauthorized pushes from compromised tokens.
  • Forward GitHub audit logs to a SIEM and alert on anomalous workflow-token API activity.
  • Track artifact creation and download events through the GitHub REST API for high-value repositories.

How to Mitigate CVE-2025-32953

Immediate Actions Required

  • Update z80pack to a revision that includes commit bd95916 or later.
  • Rotate any credentials or signing keys that may have been exposed during prior workflow runs.
  • Review repository commit history and release tags for unauthorized changes since version 1.38 was released.

Patch Information

The maintainer fixed the issue across commits 1e06c2f, 836c2e3, 9553598, and bd95916. The fix narrows artifact uploads so that the .git directory is no longer packaged with build outputs.

Workarounds

  • Set persist-credentials: false on actions/checkout to prevent the GITHUB_TOKEN from being written to .git/config.
  • Restrict upload-artifactpath: patterns to specific build outputs instead of the working directory root.
  • Set workflow permissions: to contents: read to limit damage if a token is exposed.
yaml
# Hardened workflow snippet
permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Build
        run: make
      - uses: actions/upload-artifact@v4
        with:
          name: z80pack-ubuntu
          path: |
            build/
            !**/.git/**

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.