CVE-2020-14967 RSA PKCS#1 decryption vulnerability with prepending zeros in jsrsasign

Critical 9.8 Published Updated

An attacker can trigger memory corruption in the jsrsasign library by prepending null bytes to RSA ciphertexts, potentially leading to code execution.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2020-14967?

CVE-2020-14967 is a critical memory corruption vulnerability in n/a, published on 22 Jun 2020. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

An issue was discovered in the jsrsasign package before 8.0.18 for Node.js. Its RSA PKCS1 v1.5 decryption implementation does not detect ciphertext modification by prepending '\0' bytes to ciphertexts (it decrypts modified ciphertexts without error). An attacker might prepend these bytes with the goal of triggering memory corruption issues.

Weakness: CWE-119

Which versions are affected by CVE-2020-14967?

2 open source packages ship an affected version, including jsrsasign. It affects 2 products.

PackageAffectedFixed in
jsrsasign npmAll versions8.0.18
jsrsasign npmAll versions8.0.18

Products include Kjur Jsrsasign, Netapp Max Data.

How do I fix CVE-2020-14967?

Upgrade jsrsasign to 8.0.18 or later.

Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.

Is CVE-2020-14967 being exploited?

There is no known exploitation of CVE-2020-14967 in the wild and no public exploit code.

Sources

Also known as GHSA-xxxq-chmp-67g4.

Is CVE-2020-14967 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free