Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessFork repo and open malicious PR
-
DeliveryPoison tarball-prep GHA workflow inputs
-
ExploitWorkflow runs with write GITHUB_TOKEN
-
ExecutionExfiltrate token during job
-
ImpactAbuse token to manipulate repo/commits/comments
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Trusted source inclusion only
|
| Exploitation Conditions | Exploitation requires the NUT repository's tarball-preparation GitHub Actions workflow (.github/workflows/01-make-dist-worker.yml) to run against an untrusted fork pull request while it holds a single-use write-permission GITHUB_TOKEN - the specific mis-structuring of privileged token context alongside PR-source-branch-controlled input. The attacker needs no repository credentials (fork PR only), but exploitation is limited to the brief interval while the GHA job runs and the token is valid, and depends on the vulnerable pre-patch workflow being present (before commits 658b24e and 1aa31d1). It affects only the NUT project's CI, not installed NUT UPS-monitoring deployments. |
| Impact | This is a GitHub Actions CI supply-chain flaw (CWE-829) in the Network UPS Tools repository, not a vulnerability in deployed NUT software. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:L, base 8.2) reflects that a malicious pull request from a fork could exfiltrate the write-scoped GITHUB_TOKEN because privileged token context was mixed with untrusted PR-controlled inputs. PR:N is technically correct (anyone can open a fork PR without repo access), but AC:H and UI:R capture real limiting factors: the poisoned workflow job must actually execute and the token is only abusable during the short lived job window. No EPSS score, no CISA KEV listing, and no public POC are provided - consistent with a scoped, repository-specific issue rather than mass-exploitable software. The high base score is driven by S:C plus C:H/I:H (token theft enabling repo/commit/comment manipulation), but real-world risk is bounded: the only 'deployment' of the vulnerable artifact is the single NUT repository's CI, the flaw is already patched (commits 658b24e and 1aa31d1), and the token's validity window is ephemeral. Treat as a genuine but narrow CI-hardening fix, not a broadly weaponizable NUT product vulnerability. Note the input Tags label this 'Information Disclosure', which fits token leakage but understates the integrity impact (repository content/status manipulation) that the description and I:H metric emphasize. |
| Exploit ScenarioDerived | An attacker forks the NUT repository and opens a pull request whose source branch is crafted to hijack the tarball-preparation GitHub Actions workflow that runs with a write-permission GITHUB_TOKEN. When the job executes, the malicious PR code extracts the token value and, within the job's lifetime, uses it to push commits, forge check/status results, or post issue/PR comments per the token's granted permissions. No public exploit code is identified at time of analysis, though the pattern (pwn-request style CI token theft) is well known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 28, 2026
Token exposure in the Network UPS Tools GitHub Actions tarball-preparation workflow allows an attacker submitting a fork pull request to cause the job to run with a single-use write-permission GITHUB_TOKEN that is reachable by untrusted PR-source-branch content, letting the attacker extract the token. Because the vector is AV:N/AC:H/PR:N/UI:R/S:C, exploitation is unauthenticated at the network level but requires user interaction (the workflow must actually run on the malicious fork PR) and is confined to the short window while the GHA job and token remain valid; within that window the token's write scopes permit manipulation of repository contents, commit checks/statuses, or issue/PR comments. GHSA-w6wj-3r73-fxmh documents the flaw, which is fixed by commits 658b24e and 1aa31d1; no public exploit identified at time of analysis. This affects only the NUT project's CI supply chain - installed NUT UPS/PDU monitoring deployments are not affected.
RemediationAI
Apply the upstream fixes: update the repository to include commits 658b24e (https://github.com/networkupstools/nut/commit/658b24ef8410648ceca6d5a59e8690efbc8c36bc) and 1aa31d1, which restructure the tarball-preparation workflow so privileged token use is no longer combined with untrusted fork-PR input - this is an upstream fix available as PR/commit, and a released patched version is not independently confirmed from the provided data; see advisory GHSA-w6wj-3r73-fxmh. For forks or downstream mirrors that cannot immediately rebase, compensating controls are: set workflow-level GITHUB_TOKEN permissions to read-only (permissions: read-all or a minimal explicit set) so an extracted token has no write capability - the trade-off is that legitimate artifact/status/comment updates then fail and must be moved elsewhere; separate privileged steps into a workflow_run or pull_request_target job that consumes build artifacts from the unprivileged fork run rather than checking out fork code directly - the trade-off is added workflow complexity and careful artifact validation; require maintainer approval before workflows run on fork PRs, accepting the added review latency; and set the workflow to skip jobs triggered by forks or non-maintainer authors. Rotating any token that may have been exposed is advisable, though the token described is single-use and short-lived, limiting the value of revocation after the job ends.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-829 (Inclusion of Functionality from Untrusted Control Sphere): the workflow .github/workflows/01-make-dist-worker.yml mixed code executing under higher privilege - a single-use GITHUB_TOKEN minted with write permissions - with untrusted input taken from the PR source branch, so a fork-originated pull request could steer the privileged job and reach the token value. This is a classic GitHub Actions pwn-request pattern: the boundary between the attacker-controlled fork branch and the elevated token context was not enforced, which is why the official assessment marks it S:C (scope changed) even though the network/privilege prerequisites are high-complexity and require the workflow to actually be triggered. The published source evidence shows the fix commit 658b24e rewrote the worker workflow, including a run-step action update (actions/upload-artifact@v4 to @v7), consistent with reworking how artifact upload and privileged steps are arranged. The CPE cpe:2.3:a:networkupstools:nut:*:*:*:*:*:*:*:* describes the NUT project source tree rather than any deployed runtime daemon; there is no CPE for a shipping binary because the vulnerable artifact is the repository's CI configuration.
Know when Nut 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:N/UI:R/S:C/C:H/I:H/A:L
Fork PR needs no repo access (PR:N) but the workflow must execute and the token window is narrow (AC:H, UI:R); stolen write token affects the repository beyond the runner (S:C, C:H/I:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware. Prior to commits 658b24e and 1aa31d1, the GitHub Actions script used to prepare NUT tarballs and update GitHub Checks statuses and PR comments about it was mis-structured in terms of mixing code running with higher privileges (single-use token generated with write permissions) and untrusted inputs (PR source branch). A malicious PR run from a fork could extract the GITHUB_TOKEN value. It could potentially be abused while it was valid (while the GHA job ran) to manipulate Git repository contents, commit checks/statuses, or issue/PR comments, according to permissions it was issued with. This issue has been patched via commits 658b24e and 1aa31d1.
Technical POC Analysis
CWE-829 (Inclusion of Functionality from Untrusted Control Sphere).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Network UPS Tools (NUT) GitHub Actions tarball-preparation workflow contains a high-severity token exposure flaw (CVE-2026-54160) that can let a malicious fork pull request capture a short-lived write-permission GITHUB_TOKEN. The impact is limited to the NUT project's CI supply chain; installed NUT UPS/PDU monitoring deployments are not affected, and no public exploit has been identified. Leadership should care because successful exploitation could allow unauthorized changes to repository contents, checks, or PR comments during the brief token validity window, potentially undermining trust in NUT build and release integrity.
No vendor-released patch identified at time of analysis; interim mitigations include restricting GITHUB_TOKEN permissions to read-only or least privilege, disabling or gating fork PR triggers for the tarball-preparation workflow, requiring manual approval for workflows on fork PRs, applying advisory-referenced commits 658b24e and 1aa31d1 if maintaining the NUT repository, rotating any potentially exposed tokens, and monitoring GHSA-w6wj-3r73-fxmh for updates.
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-88376
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB