CVE-2020-14966 json
ECDSA signature validation vulnerability by accepting wrong ASN.1 encoding in jsrsasign
published 6y ago modified 4mo ago also GHSA-p8c3-7rj8-q963 , EUVD-2020-0505
- cvss
- 7.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.2%
- EPSS 1.2% chance of exploitation in 30 days, percentile 67%
- public exploits
- 0
- none known
Summary
An issue was discovered in the jsrsasign package through 8.0.18 for Node.js. It allows a malleability in ECDSA signatures by not checking overflows in the length of a sequence and '0' characters appended or prepended to an integer. The modified signatures are verified as valid. This could have a security-relevant impact if an application relied on a single canonical signature.
Patch / fix
- npm jsrsasign 8.0.19
Is CVE-2020-14966 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerExploit prediction
1.15% chance of exploitation in the next 30 days, higher than 67% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/kjur/jsrsasign/issues/437 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 2.0 | 5.0 | AV:N/AC:L/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | jsrsasign | >=4.0.0, <8.0.19 |
8.0.19 |
Classification
- Weakness
-
- CWE-347 Improper Verification of Cryptographic Signature
References
-
github.com
/kjur/jsrsasign/commit/6087412d072a57074d3c4c1b40bdde0460d53a7f
web
-
github.com
/kjur/jsrsasign/issues/437
web, exploit, issue-tracking, third-party-advisory
-
kjur.github.io
/jsrsasign/
release-notes, third-party-advisory
-
npmjs.com
/package/jsrsasign
web, product, third-party-advisory
-
github.com
/kjur/jsrsasign/releases/tag/8.0.18
web, release-notes, third-party-advisory
-
github.com
/kjur/jsrsasign/releases/tag/8.0.17
web, release-notes, third-party-advisory
-
security.netapp.com
/advisory/ntap-20200724-0001/
third-party-advisory
-
github.com
/kjur/jsrsasign/security/advisories/GHSA-p8c3-7rj8-q963
web
-
nvd.nist.gov
/vuln/detail/CVE-2020-14966
advisory
-
cve.mitre.org
/cgi-bin/cvename.cgi?name=CVE-2020-14966
web
-
github.com
/kjur/jsrsasign
package
-
kjur.github.io
/jsrsasign
web
-
kjur.github.io
/jsrsasign/api/symbols/ASN1HEX.html#.checkStrictDER
web
-
kjur.github.io
/jsrsasign/api/symbols/KJUR.crypto.ECDSA.html
web
-
security.netapp.com
/advisory/ntap-20200724-0001
web
-
vuldb.com
/?id.157123
web
Sources
- CVE List CVE-2020-14966
- GitHub Advisory GHSA-p8c3-7rj8-q963
- NVD CVE-2020-14966
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.