Miggo Logo

CVE-2025-47885:
Jenkins Health Advisor by CloudBees Plugin Vulnerable to Cross-Site Scripting

8.8

CVSS Score
3.1

Basic Information

EPSS Score
0.05774%
Published
5/14/2025
Updated
5/16/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.jenkins-ci.plugins:cloudbees-jenkins-advisormaven< 374.376.v3a41aa142efe374.376.v3a_41a_a_142efe

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability lies in the fact that messages, particularly those originating from the Jenkins Health Advisor server responses or exception messages, were not being escaped before being stored and subsequently displayed. The provided patch explicitly adds Util.xmlEscape() to sanitize these messages within the BundleUpload.java file.

The functions generateBundle and executeInternal in the com.cloudbees.jenkins.plugins.advisor.BundleUpload class were identified as vulnerable because they were responsible for preparing these messages (using e.getMessage() or response.getMessage()) and passing them to updateLastBundleResult via createTimestampedErrorMessage without prior sanitization. The executeInternal function is particularly high confidence as it directly handles server responses, which is the primary attack vector described in the vulnerability details. The generateBundle function is also included as it follows the same vulnerable pattern of using raw exception messages, although the exploitability might be less direct.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

J*nkins ***lt* **visor *y *lou****s Plu*in ***.v****_******** *n* **rli*r *o*s not *s**p* r*spons*s *rom t** J*nkins ***lt* **visor s*rv*r, r*sultin* in * stor** *ross-sit* s*riptin* (XSS) vuln*r**ility *xploit**l* *y *tt**k*rs **l* to *ontrol J*nkin

Reasoning

T** vuln*r**ility li*s in t** ***t t**t m*ss***s, p*rti*ul*rly t*os* ori*in*tin* *rom t** J*nkins ***lt* **visor s*rv*r r*spons*s or *x**ption m*ss***s, w*r* not **in* *s**p** ***or* **in* stor** *n* su*s*qu*ntly *ispl*y**. T** provi*** p*t** *xpli*i