VYPR
Critical severityNVD Advisory· Published Jun 22, 2020· Updated Aug 4, 2024

CVE-2020-14967

CVE-2020-14967

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.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

CVE-2020-14967 is a flaw in jsrsasign < 8.0.18 where RSA PKCS1 v1.5 decryption does not detect prepended null bytes, enabling ciphertext modification and potential memory corruption.

Vulnerability

Overview

CVE-2020-14967 affects the jsrsasign cryptographic library for Node.js [1]. The RSA PKCS1 v1.5 decryption function fails to detect ciphertext modification when an attacker prepends \0 bytes to a legitimate ciphertext. The library will accept and decrypt the altered ciphertext without raising an error, which violates the strictness expected of a secure PKCS1-v1.5 implementation [2].

Exploitation

Scenario

An adversary can take a valid RSA-encrypted ciphertext, prepend one or more null bytes, and then feed that modified blob into the decryption routine. Because the library does not check for leading zero bytes, it proceeds with decryption as if the input were well-formed [2]. This kind of manipulation does not require network access to encrypted channels if the attacker can supply crafted ciphertexts to an application using the vulnerable library. The attack surface is any Node.js service that uses jsrsasign for RSA decryption and accepts external ciphertext input.

Impact

The primary impact is the bypass of ciphertext integrity checks. An attacker might use this primitive to trigger memory corruption or other undefined behavior in the decryption process [1]. While the vendor notes that the Marvin attack (a timing side-channel against PKCS#1 v1.5) is a separate concern, the acceptance of malformed ciphertexts undermines the security properties of RSA encryption as specified in RFC 8017 [2].

Mitigation

The issue is fixed in jsrsasign version 8.0.18 and later [1]. Users should upgrade immediately. The library removed RSA and RSAOAEP encryption/decryption support in version 11.0.0 precisely because of Marvin attack vulnerability [3]. The project is scheduled for end-of-life on 3 June 2026 [4]; users are encouraged to migrate to alternative cryptographic libraries that offer modern, side-channel-resistant RSA schemes.

AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
jsrsasignnpm
< 8.0.188.0.18

Affected products

2

Patches

0

No patches discovered yet.

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

14

News mentions

0

No linked articles in our index yet.