CVE-2023-46234: browserify-sign vulnerable via an upper bound check issue in `dsaVerify` that leads to a signature forgery attack

Published Oct 26, 2023
·
Updated

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

Other sources

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.

Ubuntu

Affected Software

12 affected componentsFixes available
debian/node-browserify-sign<=4.2.1-1, <=4.2.1-3
4.2.2-14.2.1-3+deb12u14.2.1-1+deb11u1
redhat/browserify-sign<4.2.2
4.2.2
debian/node-browserify-sign<=4.0.4-2
4.0.4-2+deb10u14.2.1-1+deb11u14.2.1-3+deb12u14.2.2-1
ubuntu/node-browserify-sign<4.0.4-2ubuntu0.18.04.1~
4.0.4-2ubuntu0.18.04.1~
ubuntu/node-browserify-sign<4.0.4-2ubuntu0.20.04.1
4.0.4-2ubuntu0.20.04.1
ubuntu/node-browserify-sign<4.2.1-2ubuntu0.1
4.2.1-2ubuntu0.1
ubuntu/node-browserify-sign<4.2.1-3ubuntu0.1
4.2.1-3ubuntu0.1
npm/browserify-sign>=2.6.0<=4.2.1
4.2.2
IBM Security QRadar EDR<=3.12
browserify Browserify-sign Node.js<4.2.2
Debian Debian Linux=11.0
Debian Debian Linux=12.0

Event History

Oct 26, 2023
CVE Published
via Ubuntu·12:00 AM
CVE Published
via MITRE·02:31 PM
Data Sourced
via MITRE·02:31 PM
DescriptionSeverityWeakness
Advisory Published
via GitHub·08:53 PM
Data Sourced
via GitHub·08:53 PM
DescriptionSeverityWeaknessAffected Software
May 30, 2024
Data Sourced
via Launchpad·01:56 PM
Description

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is CVE-2023-46234?

CVE-2023-46234 is a vulnerability in the browserify-sign package that allows an attacker to construct signatures which can be successfully verified by any public key, leading to a signature forgery attack.

2

How does CVE-2023-46234 work?

CVE-2023-46234 works by exploiting an upper bound check issue in the dsaVerify function of the browserify-sign package.

3

What is the severity rating of CVE-2023-46234?

CVE-2023-46234 has a severity rating of 7.5 (high).

4

Which software is affected by CVE-2023-46234?

The browserify-sign package with versions 2.6.0 to 4.2.1 (inclusive) is affected by CVE-2023-46234.

5

How can I fix CVE-2023-46234?

To fix CVE-2023-46234, update the browserify-sign package to version 4.2.2 or higher.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203