JHipster oraz JHipster Kotlin generują kod aplikacji korzystający z kryptograficznie słabego źródła losowości (apache.commons.lang3 RandomStringUtils) przy tworzeniu tokenów resetowania hasła. Atakujący, który pozyska własny link do resetowania hasła, może przewidzieć tokeny innych użytkowników i przejąć ich konta.
▸ Pokaż oryginał (EN)
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.
Generator JHipster produkuje klasy aplikacji, w których tokeny resetowania hasła są tworzone przy użyciu biblioteki apache.commons.lang3 RandomStringUtils — implementacji niezapewniającej kryptograficznej nieprzewidywalności (CWE-338). Ponieważ źródło entropii jest niewystarczające, atakujący posiadający własny token resetowania hasła może odtworzyć stan generatora i obliczyć wartości tokenów wygenerowanych dla innych kont. W efekcie możliwe jest inicjowanie procedury resetowania hasła dla dowolnego użytkownika i samodzielne obliczenie wartości jego tokenu bez fizycznego dostępu do jego skrzynki e-mail.
Atakujący może przejąć dowolne konto w aplikacji (account takeover) lub uzyskać nieautoryzowany dostęp do kont o wyższych uprawnieniach (privilege escalation), bez znajomości hasła ofiary ani dostępu do jej poczty.
Należy zaktualizować JHipster do wersji 6.3.0 lub nowszej, a JHipster Kotlin do wersji wyższej niż 1.1.0. Aplikacje już wygenerowane przez podatne wersje generatora wymagają regeneracji lub ręcznej aktualizacji kodu odpowiedzialnego za generowanie tokenów resetowania hasła, tak aby korzystał z kryptograficznie bezpiecznego źródła losowości. Szczegóły poprawki dostępne są w repozytorium producenta (commit 88448b85).
JHipster (generator-jhipster) w wersjach przed 6.3.0 oraz JHipster Kotlin w wersjach do 1.1.0 włącznie — dotyczy aplikacji wygenerowanych przez te narzędzia, które korzystają z wbudowanego mechanizmu resetowania hasła.
Podatność dotyczy nie samego frameworka JHipster, lecz kodu generowanego przez generator — aplikacje już wdrożone na produkcji i zbudowane przy użyciu podatnych wersji generatora wymagają osobnej interwencji niezależnie od aktualizacji narzędzia.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HJhipster
APPJhipster< 6.3.0Jhipster Kotlin
APPJhipster≤ 1.1.0
Powiązane podatności
JHipster generator-jhipster before 2.23.0 allows a timing attack against validateToken due to a string compari...
JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservi...
In generator-jhipster-kotlin version 1.6.0 log entries are created for invalid password reset attempts. As the...