Skip to content
Fencer Intel
critical 9.8

CVE-2019-16303 json

JHipster Kotlin using insecure source of randomness `RandomStringUtils` before v1.2.0

published 7y ago modified last mo. also GHSA-j3rh-8vwq-wh84 , GHSA-mwp6-j9wf-968c , EUVD-2020-0493

cvss
9.8
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
3.7%
EPSS 3.7% chance of exploitation in 30 days, percentile 89%
public exploits
0
none known

Summary

A class generated by the Generator in JHipster before 6.3.0 and JHipster Kotlin through 1.1.0 produces code that uses an insecure source of randomness (apache.commons.lang3 RandomStringUtils). This allows an attacker (if able to obtain their own password reset URL) to compute the value for all other password resets for other accounts, thus allowing privilege escalation or account takeover.

Patch / fix

  • npm generator-jhipster-kotlin 1.2.0
  • jhipster jhipster 6.3.0

Is CVE-2019-16303 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

Exploit prediction

3.67% chance of exploitation in the next 30 days, higher than 89% of all scored CVEs (FIRST EPSS, 2026-11-09).

Exploits and checks

  • github.com https://github.com/jhipster/generator-jhipster/issues/10401 referenced PoC, tagged "exploit" by a source, unverified
  • github.com https://github.com/jhipster/jhipster-kotlin/issues/183 referenced PoC, tagged "exploit" by a source, unverified

CVSS scores

assigned by version score vector
NVD 3.1 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
NVD 2.0 7.5 AV:N/AC:L/Au:N/C:P/I:P/A:P
GitHub 3.1 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Affected packages

ecosystem package affected fixed in
npm generator-jhipster-kotlin
<1.2.0
1.2.0

Classification

Weakness
  • CWE-338 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.