Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with Item/Configure permission
-
DeliverySubmit job config via REST API
-
ExploitInject javascript: URL as coverage results ID
-
ExecutionPayload stored unvalidated
-
PersistVictim admin views job page
-
ImpactScript executes in privileged session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Jenkins user who already holds Item/Configure permission on a job, using that access to submit a job configuration through the REST API with a 'javascript:' scheme URL supplied as the coverage results ID (the unvalidated field). Successful payload execution further requires user interaction (UI:R): a victim - typically a more privileged user or administrator - must subsequently view the affected job's coverage page in their browser. These two factors (low-privilege authentication plus required victim interaction) meaningfully limit real-world exploitation, so it is not usable against default unauthenticated Jenkins deployments. Affected: Jenkins Coverage Plugin 3.3358.v9487dde48783 and earlier; fixed in 3.3325.3327.v26c59e218691 and 3.3361.v0626103a_67e6. |
| Impact | This is a genuine but conditional vulnerability, not an internet-facing critical. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H, score 8.0) shows the high 8.0 is driven by the C:H/I:H/A:H impact triple that Jenkins conventionally assigns to stored XSS in its admin UI, but two real gates temper it: PR:L requires an authenticated attacker who already holds Item/Configure permission on a job, and UI:R requires a victim (typically a higher-privileged user/admin) to view the affected job page. CISA SSVC reinforces the 'not urgent' read: Exploitation=none (no observed activity), Automatable=no (requires per-target authenticated setup and victim interaction), though Technical Impact=total aligns with the C/I/A:H rating because XSS in the Jenkins context can drive CSRF-style actions or credential/session theft leading to full controller compromise. There is no KEV listing, no public POC referenced, and no EPSS score in the input - all three exploitation signals are effectively 'quiet.' Net: prioritize patching for any multi-tenant Jenkins where low-trust users hold Item/Configure, but this is not a mass-exploitation or unauthenticated-RCE emergency. No conflicting signals in the data - the CVSS network vector is consistent with the REST-API-submitted description. |
| Exploit ScenarioDerived | An attacker holding Item/Configure permission on a Jenkins job submits a job configuration via the REST API, supplying a 'javascript:' scheme URL as the coverage results ID, which is stored without validation. When an administrator or other higher-privileged user later opens the affected job/coverage page, the attacker's script executes in their browser session, enabling actions such as CSRF token theft or privileged operations. No public exploit code is referenced in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
Stored cross-site scripting in Jenkins Coverage Plugin 3.3358.v9487dde48783 and earlier lets an attacker who already holds Item/Configure permission on a job submit a job configuration through the REST API with a javascript: scheme URL in the unvalidated coverage results ID field, which is then stored and rendered when a victim later opens the job's coverage page. Exploitation therefore requires authenticated low-privilege access (CVSS PR:L) plus victim interaction (UI:R), meaning it is not usable against default unauthenticated Jenkins deployments; Impact on confidentiality, integrity and availability is rated High (CVSS 8.0). No public exploit code or confirmed active exploitation was identified at time of analysis, and CISA's SSVC assessment records Exploitation: none and Automatable: no.
RemediationAI
Vendor-released patch: upgrade the Jenkins Coverage Plugin to 3.3361.v0626103a_67e6 (current line) or 3.3325.3327.v26c59e218691 (alternate fixed line) as listed in the Jenkins advisory SECURITY-4118 (https://www.jenkins.io/security/advisory/2026-09-16/#SECURITY-4118) and EUVD-2026-80759; this is the only complete fix, since the root cause is missing validation inside the plugin and cannot be closed by hardening the controller alone. Until the upgrade is applied, the effective compensating control is authorization minimization: audit and remove Item/Configure permission from any user or group that does not genuinely need to edit job configurations, since that permission is the sole prerequisite for injecting the stored payload through the REST API - the trade-off is that legitimate job-configuration workflows will break for those accounts. If REST-based configuration changes are not required, disabling or blocking programmatic job-configuration submission (for example by restricting network access to the Jenkins controller's REST endpoints or requiring a reverse proxy rule that permits only trusted clients) shrinks the attack surface, but this does not protect against a user who already has Item/Configure permission, so it should be treated as a partial measure with added operational friction. Note that even after upgrading, browsers may have cached affected coverage pages, and previously stored malicious values in existing job configurations should be reviewed and corrected.
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 Jenkins Coverage Plugin visualizes code-coverage results for Jenkins jobs, and its results identifiers are persisted as part of the job configuration. The plugin fails to validate the coverage results ID when a job configuration is submitted through the Jenkins REST API, so a value using a javascript: scheme URL can be stored and later emitted into the coverage page without adequate output encoding or scheme allow-listing. This is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the stored/persistent variant: the payload survives in the job configuration rather than being reflected in a single response. The affected component is packaged as a Jenkins plugin, identified in CPE as cpe:2.3:a:jenkins_project:jenkins_coverage_plugin:*:*:*:*:*:*:*:*, which covers all versions up to and including 3.3358.v9487dde48783. Because the Jenkins REST API is the injection vector, the flaw sits at the boundary between authorization (who may configure a job) and output sanitization (how stored configuration values are rendered), and the assessed vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H confirms low-privilege authentication is a prerequisite while the scope remains unchanged.
Know when Jenkins Coverage Plugin 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:R/S:U/C:H/I:H/A:H
Network REST API with low complexity but PR:L (Item/Configure required) and UI:R (victim must view page); stored XSS in Jenkins admin context justifies C/I/A:H, S:U per vendor convention though S:C is arguable.
Primary rating from Vendor (jenkins).
CVSS VectorVendor: jenkins
Lifecycle Timeline
3DescriptionCVE.org
Jenkins Coverage Plugin 3.3358.v9487dde48783 and earlier does not validate the coverage results ID when a job configuration is submitted through the REST API, allowing attackers with Item/Configure permission to use a javascript: scheme URL as identifier, resulting in a stored cross-site scripting (XSS) vulnerability.
Articles & Coverage 2
Executive ViewAI
A stored cross-site scripting flaw in the Jenkins Coverage Plugin (versions 3.3358.v9487dde48783 and earlier) allows a user who already holds Item/Configure permission on a job to plant malicious content that executes in the browser of anyone who later opens that job's coverage page. Because the plugin is widely deployed across Jenkins build infrastructure - which frequently holds deployment credentials and code-signing access - a compromised engineering or build account could be leveraged to target administrators and other privileged reviewers. No vendor patch is currently available, so risk must be managed through permission tightening and monitoring until a fix ships.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict Item/Configure and job-configuration permissions to the minimum set of trusted users, disable or uninstall the Coverage Plugin where it is not needed, limit REST API and network access to the Jenkins controller, enforce MFA and short session lifetimes for Jenkins accounts, apply a restrictive Content Security Policy to the Jenkins UI, and monitor audit logs for anomalous job configuration changes.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-80759
GHSA-29m4-vpx5-mmrm
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB