CVE-2025-27623
Medium · 4.3Jenkins reveals encrypted values of secrets stored in agent configuration to users with Agent/Extended Read permission
CVSS
4.3
EPSS
0.3%
Published
Mar 6, 2025
CISA due date
—
Cloudanix analysis
Some Jenkins users with limited view access could download protected configuration details that may help expose automation credentials if combined with other access.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Jenkins 2.499 and earlier and Jenkins LTS 2.492.1 and earlier expose encrypted secret values stored in view configuration when a user with only View/Read permission retrieves a view's config.xml through the REST API or Jenkins CLI. The flaw does not directly reveal plaintext secrets, but it leaks encrypted secret blobs that should have been redacted from users lacking View/Configure permission. Those blobs may become valuable if combined with Jenkins controller filesystem access, backups, key material, plugin weaknesses, misconfigurations, or later privilege escalation that enables decryption or reuse of the protected values.
Why it matters to the business
The primary risk is unauthorized exposure of CI/CD-related secret material, which can increase the blast radius of a low-privileged Jenkins account. If leaked encrypted secrets are later decrypted or abused, attackers may gain access to source repositories, build systems, artifact stores, deployment credentials, cloud resources, or downstream production environments. The vulnerability has a moderate CVSS score, low EPSS, no known CISA KEV listing, no reported ransomware association, and no public exploit maturity indicated, but Jenkins often holds high-value automation credentials, so organizations should still treat affected internet-facing or broadly accessible Jenkins controllers as sensitive.
How an attack unfolds
An attacker first obtains valid Jenkins credentials or session access for an account that has View/Read permission on one or more views but does not have View/Configure permission. The attacker then requests the view configuration XML using either the Jenkins REST endpoint for the view or the Jenkins CLI command that exports view configuration. On vulnerable versions, Jenkins returns config.xml content containing encrypted secret values instead of redacting them. The attacker collects these encrypted blobs for offline analysis, correlation with other Jenkins data, or later use after obtaining additional access such as controller filesystem access, backups, master key material, administrative privileges, or another vulnerability that enables secret decryption. The attack is therefore most useful as a credential-material collection step that supports follow-on compromise rather than as a standalone plaintext credential theft issue.
How to fix it
Upgrade Jenkins weekly releases to 2.500 or later, or Jenkins LTS to 2.492.2 or later. The upstream fix redacts encrypted secret values in view config.xml responses for users who have View/Read but lack View/Configure permission. If building from source, ensure the Jenkins codebase includes commit 02d4db379ac965641bb1382515c834cf4966ec5a or a later equivalent. As compensating controls before upgrade, restrict View/Read permission to trusted users, remove unnecessary anonymous or broad authenticated read access, limit Jenkins CLI access, restrict direct access to Jenkins endpoints with network controls, review views that may contain credentials or plugin-provided secret fields, and rotate credentials if logs or access history indicate suspicious config.xml retrieval.
How to confirm the fix worked
Confirm the Jenkins controller reports a fixed version: weekly 2.500 or later, or LTS 2.492.2 or later. Validate authorization behavior with a non-administrative test account that has View/Read but not View/Configure permission: request a view's config.xml through the REST API and, if enabled, Jenkins CLI, and verify encrypted secret fields are redacted rather than returned. Also confirm users without a business need do not have View/Read on sensitive views, anonymous read access is disabled unless explicitly required, and Jenkins CLI exposure is limited. Review plugin compatibility after upgrade because view configuration may include plugin-defined secret-bearing fields.
Typical attack path
- Obtain or compromise a Jenkins account with View/Read permission on one or more views.
- Enumerate accessible views in the Jenkins UI, REST API, or CLI.
- Request the view configuration XML via /view/<view-name>/config.xml or the Jenkins CLI view export functionality.
- Save any encrypted secret values returned in the XML response.
- Attempt to combine the leaked encrypted values with additional access, backups, Jenkins controller files, keys, or later privilege escalation to decrypt or abuse the secret material.
- Use recovered or reusable credentials to pivot into source control, CI/CD pipelines, artifact repositories, cloud services, or deployment targets.
How to detect it
To determine whether this was already exploited, review Jenkins HTTP access logs, reverse proxy or load balancer logs, web application firewall logs, Jenkins audit trail plugin logs if deployed, and Jenkins controller logs for requests that retrieved view configuration XML. Focus on authenticated users with View/Read but not View/Configure permission, unusual source IPs, high-volume enumeration of multiple views, access outside normal administrative windows, and CLI-based configuration export activity. Key patterns include HTTP GET requests to /view/<name>/config.xml, nested view paths ending in /config.xml, and Jenkins CLI invocations that export view XML such as get-view. Because the vulnerability exposes encrypted rather than plaintext values, exploitation may leave only access artifacts; correlate any suspicious retrieval with subsequent credential misuse, SCM access anomalies, new or modified jobs, unexpected builds, credential changes, new API tokens, or changes to deployment destinations. If suspicious config.xml access occurred and the controller filesystem, backups, or key material may also have been exposed, treat related secrets as potentially compromised and rotate them.
- GET /view/
- /config.xml
- GET /view/*/config.xml
- POST /cli
- /cli?remoting=false
- jenkins-cli.jar get-view
- get-view
- hudson.cli.CLI
- X-Jenkins-CLI
- <secret>{AQAA
- {AQAAABAAAA
- <password>{AQAA
- <token>{AQAA
- <apiToken>{AQAA
What your security team should do
- Prioritize upgrading affected Jenkins controllers to weekly 2.500 or later or LTS 2.492.2 or later, especially controllers reachable from untrusted networks or used for deployment automation.
- Audit Jenkins authorization strategy for excessive View/Read access, broad authenticated read access, and anonymous access to views.
- Search Jenkins access logs, reverse proxy logs, and audit logs for unusual or repeated access to /view/*/config.xml and Jenkins CLI view export activity before the patch date.
- If suspicious access is found, identify which views were accessed and assess whether their configurations contained credential or secret-bearing fields.
- Rotate credentials referenced by affected views or related plugins if encrypted secret values may have been exposed to untrusted users or if controller key material may also have been accessible.
- Restrict or disable Jenkins CLI where not required, and enforce network allowlisting or SSO controls for Jenkins administrative and API access.
- Monitor for follow-on misuse of CI/CD credentials, including unusual SCM access, build job changes, artifact publication, credential creation, or deployment activity.
The record
Jenkins 2.499 and earlier, LTS 2.492.1 and earlier does not redact encrypted values of secrets when accessing `config.xml` of views via REST API or CLI. This allows attackers with View/Read permission to view encrypted values of secrets. Jenkins 2.500, LTS 2.492.2 redacts the encrypted values of secrets stored in view `config.xml` accessed via REST API or CLI for users lacking View/Configure permission.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.jenkins-ci.main:jenkins-core | 0 | 2.492.2 |
| Maven | org.jenkins-ci.main:jenkins-core | 2.493 | 2.500 |
| Bitnami | jenkins | 2.493.0 | No fix |
| Bitnami | jenkins | 2.493.0 | 2.504.1 |
| Chainguard | jenkins-2.492 | 0 | 2.492.3-r4 |
| maven | org.jenkins-ci.main/jenkins-core | 2.493 | 2.500 |
Related vulnerabilities
- GHSA-85h6-5m3v-gx37 Jenkins has a stored XSS vulnerability in node offline cause description Also affects org.jenkins-ci.main:jenkins-core
- GHSA-wfhp-qgm8-5p5c Jenkins has a build information disclosure vulnerability through Run Parameter Also affects org.jenkins-ci.main:jenkins-core
- CVE-2026-27099 Jenkins 2.483 through 2.550 (both inclusive), LTS 2.492.1 through 2.541.1 (both… Also affects org.jenkins-ci.main:jenkins-core
- CVE-2026-27100 Jenkins 2.550 and earlier, LTS 2.541.1 and earlier accepts Run Parameter values that… Also affects org.jenkins-ci.main:jenkins-core
- GHSA-6837-qgrc-x5p6 Jenkins has a CSRF vulnerability on the login form Also affects org.jenkins-ci.main:jenkins-core
- GHSA-9p56-p6mw-w8qc Jenkins has a Denial of service vulnerability in HTTP-based CLI Also affects org.jenkins-ci.main:jenkins-core
- GHSA-fxj7-6v9w-xc76 Jenkins's build authorization token is stored and displayed in plain text Also affects org.jenkins-ci.main:jenkins-core
- GHSA-hxjg-2jvf-h3rx Jenkins's build authorization token is stored and displayed in plain text Also affects org.jenkins-ci.main:jenkins-core