indutny/bn.js · Security
bn.js affected by an infinite loop
- GHSA ID
- GHSA-378v-28hj-76wf
- CVE ID
- CVE-2026-2739
- Severity
- medium
- Published
- Updated
- CVSS
- 5.3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- CVSS v3
- 5.3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- CVSS v4
- 5.5 · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P
Description
This affects versions of the package bn.js before 4.12.3 and 5.2.3. Calling maskn(0) on any BN instance corrupts the internal state, causing toString(), divmod(), and other methods to enter an infinite loop, hanging the process indefinitely.
CWEs
- CWE-835 · Loop with Unreachable Exit Condition ('Infinite Loop')
References
- https://nvd.nist.gov/vuln/detail/CVE-2026-2739 ↗
- https://github.com/indutny/bn.js/issues/186 ↗
- https://github.com/indutny/bn.js/issues/316 ↗
- https://github.com/indutny/bn.js/pull/317 ↗
- https://github.com/indutny/bn.js/commit/33df26b5771e824f303a79ec6407409376baa64b ↗
- https://gist.github.com/Kr0emer/02370d18328c28b5dd7f9ac880d22a91 ↗
- https://security.snyk.io/vuln/SNYK-JS-BNJS-15274301 ↗
- https://github.com/indutny/bn.js/releases/tag/v5.2.3 ↗
- https://github.com/indutny/bn.js/issues/316#issuecomment-3924217358 ↗
- https://github.com/advisories/GHSA-378v-28hj-76wf ↗