Skip to content

generator-jhipster vulnerable to login check Regular Expression Denial of Service

High severity GitHub Reviewed Published May 17, 2020 in jhipster/generator-jhipster • Updated Jan 12, 2023

Package

npm generator-jhipster (npm)

Affected versions

> 6.8.0, < 6.9.0

Patched versions

None

Description

Impact

For applications using JWT or session-based authentication (not OIDC), users can input a login string which can cause a denial of service, as parsing it will be too complex.

Here is an example: https://gist.github.com/atomfrede/311f8a9c6eb74c5c5226af0481155207

The vulnerable expression was never officially released. So only when you generated an application from the master branch between 6.8.0 and 6.9.0 your generated application may be vulnerable.

Patches

If you only used official releases you don't need to patch your application.

Workarounds

If you have created an application from the master branch, you need to adapt the LOGIN_REGEX in Constants.java. If your regex is

^[a-zA-Z0-9!#$&'*+=?^_`{|}~.-]+@?[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$

you need to change it too

^(?>[a-zA-Z0-9!$&*+=?^_`{|}~.-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)|(?>[_.@A-Za-z0-9-]+)$

If you still have ^[_.@A-Za-z0-9-]*$ there is no need to change it, except you would like to support login with + sign (e.g. [email protected]).

References

References

Published to the GitHub Advisory Database Oct 6, 2022
Reviewed Oct 6, 2022
Last updated Jan 12, 2023

Severity

High

EPSS score

Weaknesses

No CWEs

CVE ID

No known CVE

GHSA ID

GHSA-8w7w-67mw-r5p7
Loading Checking history
Improvements are not currently accepted on this advisory because it uses an unsupported versioning operator. Read more and discuss here.