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

exploitDog

github логотип

GHSA-x9w5-v3q2-3rhw

Опубликовано: 26 окт. 2023
Источник: github
Github: Прошло ревью
CVSS3: 7.5

Описание

browserify-sign upper bound check issue in dsaVerify leads to a signature forgery attack

Summary

An upper bound check issue in dsaVerify function allows an attacker to construct signatures that can be successfully verified by any public key, thus leading to a signature forgery attack.

Details

In dsaVerify function, it checks whether the value of the signature is legal by calling function checkValue, namely, whether r and s are both in the interval [1, q - 1]. However, the second line of the checkValue function wrongly checks the upper bound of the passed parameters, since the value of b.cmp(q) can only be 0, 1 and -1, and it can never be greater than q.

In this way, although the values of s cannot be 0, an attacker can achieve the same effect as zero by setting its value to q, and then send (r, s) = (1, q) to pass the verification of any public key.

Impact

All places in this project that involve DSA verification of user-input signatures will be affected by this vulnerability.

Fix PR:

Since the temporary private fork was deleted, here's a webarchive of the PR discussion and diff pages: PR webarchive.zip

Пакеты

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

browserify-sign

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

>= 2.6.0, <= 4.2.1

4.2.2

EPSS

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

7.5 High

CVSS3

Дефекты

CWE-347

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

CVSS3: 6.5
ubuntu
больше 1 года назад

browserify-sign is a package to duplicate the functionality of node's crypto public key functions, much of this is based on Fedor Indutny's work on indutny/tls.js. An upper bound check issue in `dsaVerify` function allows an attacker to construct signatures that can be successfully verified by any public key, thus leading to a signature forgery attack. All places in this project that involve DSA verification of user-input signatures will be affected by this vulnerability. This issue has been patched in version 4.2.2.

CVSS3: 7.5
redhat
больше 1 года назад

browserify-sign is a package to duplicate the functionality of node's crypto public key functions, much of this is based on Fedor Indutny's work on indutny/tls.js. An upper bound check issue in `dsaVerify` function allows an attacker to construct signatures that can be successfully verified by any public key, thus leading to a signature forgery attack. All places in this project that involve DSA verification of user-input signatures will be affected by this vulnerability. This issue has been patched in version 4.2.2.

CVSS3: 6.5
nvd
больше 1 года назад

browserify-sign is a package to duplicate the functionality of node's crypto public key functions, much of this is based on Fedor Indutny's work on indutny/tls.js. An upper bound check issue in `dsaVerify` function allows an attacker to construct signatures that can be successfully verified by any public key, thus leading to a signature forgery attack. All places in this project that involve DSA verification of user-input signatures will be affected by this vulnerability. This issue has been patched in version 4.2.2.

CVSS3: 7.5
msrc
больше 1 года назад

Описание отсутствует

CVSS3: 6.5
debian
больше 1 года назад

browserify-sign is a package to duplicate the functionality of node's ...

EPSS

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

7.5 High

CVSS3

Дефекты

CWE-347