Miggo Logo

CVE-2023-46233: crypto-js PBKDF2 1,000 times weaker than specified in 1993 and 1.3M times weaker than current standard

9.1

CVSS Score
3.1

Basic Information

EPSS Score
0.75527%
Published
10/25/2023
Updated
2/1/2024
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
crypto-jsnpm< 4.2.04.2.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two key insecure defaults in PBKDF2 implementation:

  1. The commit diff shows the original code used SHA1 and 1 iteration in src/pbkdf2.js (cfg.hasher and cfg.iterations).
  2. PBKDF2's security relies on computational effort from iterations and hash strength. SHA1 is vulnerable to collision attacks, and 1 iteration provides no meaningful work factor.
  3. The functions are explicitly called out in NVD/CVE descriptions as having 'defaults to SHA1' and 'defaults to one single iteration'.
  4. The GitHub advisory confirms all versions are impacted because these defaults existed since inception. While no function name is explicitly given in the code snippets, the PBKDF2 implementation and its configuration object are the logical points where these vulnerable defaults are enforced.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t #### Summ*ry *rypto-js P*K*** is *,*** tim*s w**k*r t**n ori*in*lly sp**i*i** in ****, *n* [*t l**st *,***,*** tim*s w**k*r t**n *urr*nt in*ustry st*n**r*][OW*SP P*K*** ****ts***t]. T*is is ****us* it *ot* (*) ****ults to [S***][S*** wiki]

Reasoning

T** vuln*r**ility st*ms *rom two k*y ins**ur* ****ults in P*K*** impl*m*nt*tion: *. T** *ommit *i** s*ows t** ori*in*l *o** us** S*** *n* * it*r*tion in sr*/p*k***.js (***.**s**r *n* ***.it*r*tions). *. P*K***'s s**urity r*li*s on *omput*tion*l ***or