ByteGuard Build Actions
CVE-2025-64144
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Item/Extended Read or controller FS access
-
ExploitRead job config.xml
-
ExecutionExtract plaintext API token
-
ImpactReuse token against target service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V14 - Data Protection Encryption of sensitive data
|
| Exploitation Conditions | The ByteGuard Build Actions Plugin 1.0 must be installed and in use with configured API tokens, which are then written in cleartext to job config.xml on the controller. Exploitation requires EITHER a Jenkins account holding Item/Extended Read permission on the affected job(s), OR read access to the Jenkins controller filesystem (e.g., via backups, shared storage, or a shell on the host). Limiting factors: this is authenticated (PR:L) - an anonymous remote attacker cannot reach the token without first obtaining Extended Read or filesystem access; impact is confined to disclosure of whatever external service the stored API token authenticates to; and it depends on the non-default condition that this specific plugin is deployed and tokens have been entered. |
| Impact | This is a genuinely low-priority issue despite being a real vulnerability. The CVSS 3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) reflects a confidentiality-only information disclosure requiring authenticated access, and all secondary signals agree rather than conflict: EPSS is 0.17% (6th percentile), there is no CISA KEV listing, and no public exploit code was identified. The exposure requires an attacker to already hold at least Item/Extended Read permission on the Jenkins controller or have filesystem access, meaning this is a privilege-boundary/defense-in-depth weakness (an insider or a lower-trust user escalating access to secrets) rather than a remotely exploitable, unauthenticated flaw. No SSVC decision data was provided in the input. The PR:L in the vector is consistent with the description's requirement for Item/Extended Read permission, so the signals are coherent. Net assessment: a legitimate secret-hygiene defect worth patching during normal maintenance, but not an emergency - the combination of required authentication, low impact, negligible EPSS, and absence of KEV/POC all point to low real-world risk. |
| Exploit ScenarioDerived | A Jenkins user who has been granted Item/Extended Read permission on a job (but not full administrative rights) views the job's config.xml and reads the plaintext API token stored by the ByteGuard Build Actions plugin, then reuses that token to authenticate to the downstream service the token grants access to. Alternatively, anyone with read access to the controller's filesystem (e.g., backups, a compromised low-privilege shell) can harvest the tokens from the on-disk config. No public exploit code is required - the data is simply readable in cleartext. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Cleartext storage of external-service API tokens by the Jenkins ByteGuard Build Actions Plugin 1.0 lets anyone with Item/Extended Read permission on an affected job - or read access to the Jenkins controller filesystem - recover those tokens directly from job config.xml. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) confirms this is a low-privileged, network-reachable confidentiality-only issue: authentication requirements are low-privileged (PR:L), so an anonymous attacker cannot reach the token without first obtaining Extended Read or host-level file access, and impact is confined to whichever external service the leaked token authenticates to. EPSS is 0.17% (6th percentile) and no public exploit identified at time of analysis; this is a genuine but low-priority weakness that also depends on the non-default condition that the plugin is deployed with API tokens actually configured.
RemediationAI
No vendor-released patch version is identified in the available data, so consult the Jenkins security advisory https://www.jenkins.io/security/advisory/2025-10-29/#SECURITY-3560 (and the oss-security mirror http://www.openwall.com/lists/oss-security/2025/10/29/2) for the current fixed release, and treat the plugin as unpatched in the meantime. The highest-value action is credential hygiene rather than code change: rotate or revoke every API token that has been stored through this plugin, since the secret must be assumed compromised once it has been written to config.xml, accepting the side effect that dependent jobs will fail until the new token is supplied. Where the plugin's functionality is required, move the token out of job configuration into the Jenkins Credentials Plugin as a secret text credential and bind it at build time, so the value is encrypted at rest and masked in the UI - this requires job-definition changes and the token is still usable by build scripts, but it removes the plaintext exposure path used here. Tighten access on the Jenkins side by restricting Item/Extended Read to the minimum set of users (Matrix Authorization Strategy or equivalent), noting that this reduces visibility for legitimate users; treat the controller filesystem as a secret store by excluding job directories and config.xml from backups, shared volumes, and container images, and by limiting shell access to the controller. Finally, audit existing job config.xml files for cleartext token fields, and if the plugin cannot be upgraded or reconfigured, disable or uninstall it after migrating the tokens - accepting loss of its build-step functionality as the trade-off.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in maven
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause class is CWE-311 (Missing Encryption of Sensitive Data). The ByteGuard Build Actions Plugin, identified by CPE cpe:2.3:a:jenkins:byteguard_build_actions:1.0:*:*:*:*:jenkins:*:*, persists API tokens for the external ByteGuard service as plaintext inside the per-job config.xml on the Jenkins controller rather than routing them through Jenkins' standard secret-handling facilities. Jenkins normally protects credentials via the Credentials Plugin and the hudson.util.Secret encryption layer (credential values stored in credentials.xml are encrypted and masked in the UI); a plugin that writes a token as a plain field in job configuration bypasses that layer entirely, so the token is exposed both through Jenkins' own configuration-viewing surfaces and through any copy of the controller's job directory. Two independent disclosure paths therefore exist: the Jenkins RBAC path (Item/Extended Read permission is sufficient to view the raw configuration) and the storage path (controller filesystem access - including backups, shared storage, or container images - yields the token without any Jenkins authentication). Because the token is a bearer credential for an external service, the severity is bounded by what that external service permits, but it also means the credential is not invalidated by patching Jenkins alone.
Know when Byteguard Build Actions 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:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Reachable over the Jenkins web UI by an authenticated user with Item/Extended Read (PR:L, AV:N, AC:L); confidentiality-only token disclosure (C:L), no integrity or availability impact and no scope change.
Primary rating from Vendor (googlegroups).
CVSS VectorVendor: googlegroups
DescriptionCVE.org
Jenkins ByteGuard Build Actions Plugin 1.0 stores API tokens unencrypted in job config.xml files on the Jenkins controller where they can be viewed by users with Item/Extended Read permission, or access to the Jenkins controller file system.
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.
NVD
CVE.org
EPSS
GitHub PoC
Exploit-DB