Miggo Logo

CVE-2020-15112: etcd's WAL `ReadAll` method vulnerable to an entry with large index causing panic

5.3

CVSS Score
3.1

Basic Information

EPSS Score
0.29048%
Published
10/6/2022
Updated
2/15/2023
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
go.etcd.io/etcd/v3go< 3.3.233.3.23
go.etcd.io/etcd/v3go>= 3.4.0, < 3.4.103.4.10

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from improper validation of array indices in WAL.ReadAll. The original code appended entries using a slice operation dependent on untrusted index values from WAL files. The patch added bounds checking (up > uint64(len(ents))) to prevent out-of-range accesses. The CWE-129 (Improper Validation of Array Index) and commit diff modifications to wal/wal.go's ReadAll method confirm this was the vulnerable function.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Vuln*r**ility typ* **t* V*li**tion ### **t*il In t** R****ll m*t*o* in w*l/w*l.*o, it is possi*l* to **v* *n *ntry in**x *r**t*r t**n t** num**r o* *ntri*s. T*is *oul* **us* issu*s w**n W*L *ntri*s *r* **in* r*** *urin* *ons*nsus *s *n *r*itr*ry

Reasoning

T** vuln*r**ility st*ms *rom improp*r `v*li**tion` o* *rr*y in*i**s in `W*L.R****ll`. T** ori*in*l *o** *pp*n*** *ntri*s usin* * sli** op*r*tion **p*n**nt on untrust** in**x v*lu*s *rom `W*L` *il*s. T** p*t** ***** *oun*s ****kin* (`up > uint**(l*n(*