Skip to main content

Jenkins Coverage Plugin CVE-2025-67641

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2025-12-10 jenkinsci-cert@googlegroups.com
5.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with Item/Configure permission
  2. Delivery
    Submit job config via REST API bypassing UI validation
  3. Exploit
    Store javascript: URL as coverage results ID
  4. Execution
    Victim opens coverage results page
  5. Impact
    Script executes in victim's Jenkins 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 attacker account with Jenkins Item/Configure permission and use of the REST API to submit the job configuration, because the javascript: scheme coverage results ID is only rejected by the UI validation path and not when coverage results are created - the REST API is the specific bypass. Being stored XSS, it additionally requires a victim (typically a higher-privileged user or administrator) to subsequently view the affected job's coverage results page for the injected script to execute (UI:R). Limiting factors: the attacker must already be authenticated and trusted with job-configuration rights (PR:L), so the realistic threat is primarily multi-tenant or lower-trust-user Jenkins deployments rather than default single-admin installs; the low confidentiality/integrity impact reflects script execution scoped to the victim's browser session.

Impact

This is a moderate-risk, authenticated stored XSS (CVSS 5.4, CWE-79) rather than a high-urgency issue. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N shows it is network-reachable with low complexity, but requires an authenticated attacker holding Item/Configure permission (PR:L) and victim interaction (UI:R) to view the tainted coverage results - meaning it is not a drive-by, unauthenticated flaw. The scope change (S:C) and low confidentiality/integrity impact reflect that injected script executes in another user's browser context against the Jenkins UI. Exploitation signals are quiet and consistent: EPSS is low at 0.31% (22nd percentile), the CVE is NOT in CISA KEV, and no public proof-of-concept is referenced - so there is no public exploit identified at time of analysis and no evidence of active exploitation. The signals do not conflict: a low EPSS and absent KEV/POC align with a privilege-gated XSS that depends on an attacker already trusted with job-configuration rights. Priority is appropriate for routine patching rather than emergency response, with higher relative concern in multi-tenant Jenkins installations where low-trust users hold Item/Configure.

Exploit ScenarioDerived

An attacker who already has Item/Configure permission on a Jenkins instance submits a job configuration through the REST API (bypassing the UI-only validation) that sets a coverage results ID to a javascript: scheme URL. When a higher-privileged user such as an administrator later opens that job's coverage results page, the stored script executes in their authenticated browser session. No public exploit code is identified at time of analysis, and exploitation requires both the attacker's existing permission and victim interaction.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Stored cross-site scripting in the Jenkins Coverage Plugin (2.3054.ve1ff7b_a_a_123b_ and earlier) lets an authenticated user with Item/Configure permission set a javascript:-scheme URL as the coverage results ID by submitting the job configuration through the REST API, a path that bypasses the UI validation that would otherwise reject it. The injected script then executes in the browser of any user who opens the affected job's coverage results page (CVSS 5.4, CWE-79), giving script execution limited to the victim's session (low confidentiality and integrity impact). No public exploit code has been identified at time of analysis and EPSS is low at 0.31% (22nd percentile); the practical risk is concentrated in multi-tenant or lower-trust Jenkins deployments where non-administrators are permitted to configure jobs.

RemediationAI

Patch available per vendor advisory: consult https://www.jenkins.io/security/advisory/2025-12-10/#SECURITY-3611 for the fixed Coverage Plugin version and upgrade through the Jenkins update center or by manually installing the corrected .hpi/.jpi; the provided data does not enumerate the exact fixed version number, so the advisory should be treated as the source of truth rather than assuming a version. If immediate upgrade is not possible, reduce exposure by restricting Item/Configure permission to fully trusted users only (this directly removes the PR:L prerequisite, but it may impede legitimate delegated job administration) and by auditing existing job configurations and stored coverage results for javascript: identifiers, which can be done by reviewing job config.xml files or the Jenkins script console. Because the validation gap is specifically on the REST API path, disabling or firewalling the Jenkins REST API is not a practical workaround for most installations (it breaks automation and CLI tooling), so access control and configuration auditing are the realistic compensating controls; additionally, keeping Jenkins itself current helps because recent Jenkins releases enable Content-Security-Policy protections that can limit the impact of injected script, though plugin UI behavior should be tested before relying on this.

Affected Packages

maven io.jenkins.plugins:coverage fix: 2.3056

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

This is a stored cross-site scripting flaw (CWE-79) rooted in inconsistent input validation across two code paths in the Jenkins Coverage Plugin. The plugin validates the configured coverage results identifier only when the job configuration is submitted through the Jenkins UI, but the same value is accepted without validation when coverage results are created, meaning the REST API provides the bypass. Because the identifier is persisted and later rendered on the coverage results page, a javascript: scheme URL supplied as the identifier becomes a stored XSS payload. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N indicates network accessibility, low complexity, but exploitation requires an authenticated account with Item/Configure permission (PR:L) and requires a victim to view the affected page (UI:R); the changed scope (S:C) and low C/I impact reflect script execution bounded by the victim's browser session rather than server compromise. The CPE entry cpe:2.3:a:jenkins:coverage:*:*:*:*:*:jenkins:*:* confirms the affected component is the Jenkins Coverage plugin across its version range up to 2.3054.ve1ff7b_a_a_123b_.

Know when Coverage 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

NVD PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Attacker needs Item/Configure permission (PR:L) and a victim must view the results (UI:R); stored XSS crosses into the victim's browser context (S:C) with limited C/I and no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionNVD

Jenkins Coverage Plugin 2.3054.ve1ff7b_a_a_123b_ and earlier does not validate the configured coverage results ID when creating coverage results, only when submitting the job configuration through the UI, allowing attackers with Item/Configure permission to use a javascript: scheme URL as identifier by configuring the job through the REST API, resulting in a stored cross-site scripting (XSS) vulnerability.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Medium
popular Jenkins code-coverage plugin, common in CI but not universal
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Affected Products (CPE)NVD

cpe:2.3:a:jenkins:coverage:*:*:*:*:*:jenkins:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy