Miggo Logo

CVE-2020-2291:
Password stored in plain text by Jenkins couchdb-statistics Plugin

3.3

CVSS Score
3.1

Basic Information

EPSS Score
0.0083%
Published
5/24/2022
Updated
10/27/2023
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.jenkins-ci.plugins:couchdb-statisticsmaven< 0.40.4

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from unencrypted password storage in CouchStatsConfig.xml. Jenkins plugins typically use a GlobalConfiguration subclass (CouchStatsConfig) with @DataBoundSetter methods for form binding. The configure() method (triggered on config save) and setPassword() method would be responsible for persisting the password value. In vulnerable versions, these functions would lack encryption logic before storing the password to disk. The fix in 0.4 likely added encryption in these methods. While exact code isn't available, this pattern matches Jenkins plugin architecture and the vulnerability description.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

J*nkins *ou****-st*tisti*s Plu*in *.* *n* **rli*r stor*s its s*rv*r p*sswor* un*n*rypt** in its *lo**l *on*i*ur*tion *il* `or*.j*nkins*i.plu*ins.*ou**st*ts.*ou**St*ts*on*i*.xml` on t** J*nkins *ontroll*r *s p*rt o* its *on*i*ur*tion. T*is p*sswor* *

Reasoning

T** vuln*r**ility st*ms *rom un*n*rypt** p*sswor* stor*** in `*ou**St*ts*on*i*.xml`. J*nkins plu*ins typi**lly us* * `*lo**l*on*i*ur*tion` su**l*ss (`*ou**St*ts*on*i*`) wit* `@**t**oun*S*tt*r` m*t*o*s *or *orm *in*in*. T** `*on*i*ur*()` m*t*o* (tri**