# CVE-2019-9153: OpenPGP.js message signature type bypass

Source: https://junglewise.ai/threats/cve-2019-9153-openpgp-js-message-signature-type-bypass  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2019-08-23. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2019-9153 · Severity: low · CVSS 3 · Published 2019-08-23

OpenPGP.js is a JavaScript library used to implement PGP encryption and digital signatures in web applications and Node.js services. A flaw in signature verification allowed attackers to forge signed messages by reusing signature packets without proper type validation, potentially enabling message spoofing and authentication bypass in applications relying on PGP signatures.

Technologies: [openpgp (npm)](https://junglewise.ai/threats/technologies/openpgp). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2019-9153 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2019-9153 being exploited in the wild.

**How severe is CVE-2019-9153?** Low severity, with a CVSS score of 3, published 23 August 2019.

**Which products and versions are affected?** openpgp (npm) SEMVER:introduced=0,fixed=4.2.0.

**Is there a fix for CVE-2019-9153?** Yes. openpgp (npm): upgrade to 4.2.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2019-9153 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2019-9153?** Check whether you run openpgp (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- openpgp (npm): upgrade to 4.2.0 or later

  ```sh
  npm install openpgp@4.2.0
  ```


## Technical details

OpenPGP.js versions prior to 4.2.0 failed to validate that a message signature was of the correct type (text or binary). An attacker could construct arbitrary signed messages by extracting standalone or timestamp signature packets from a victim and reapplying them to different message content, bypassing signature verification. The vulnerability exists because the library did not enforce that only binary or text signature types are valid for message verification. The fix, released in version 4.2.0, adds explicit type checking to accept only binary or text signatures when verifying messages. This is a network-accessible vulnerability with no authentication requirement.

## Affected products

- OpenPGP.js openpgp <4.2.0

## Identifiers

- CVE-2019-9153
- GHSA-qwqc-28w3-fww6

## Timeline

- 2019-08-23: disclosed
- 2019-08-23: patched: Version 4.2.0 released with fix

## References

- [https://github.com/openpgpjs/openpgpjs/pull/797/commits/327d3e5392a6f59a4270569d200c7f7a2bfc4cbc](https://github.com/openpgpjs/openpgpjs/pull/797/commits/327d3e5392a6f59a4270569d200c7f7a2bfc4cbc)

## Related threats

- [OpenPGP.js message signature verification spoofing](https://junglewise.ai/threats/cve-2025-47934-openpgp-js-message-signature-verification-spoofing)
- [OpenPGP.js cleartext signed message signature spoofing](https://junglewise.ai/threats/cve-2023-41037-openpgp-js-cleartext-signed-message-signature-spoofing)
- [OpenPGP.js decryption bypass on crafted symmetric keys](https://junglewise.ai/threats/cve-2015-8013-openpgp-js-decryption-bypass-on-crafted-symmetric-keys)
- [OpenPGP.js invalid curve attack in ECDH](https://junglewise.ai/threats/cve-2019-9155-openpgp-js-invalid-curve-attack-in-ecdh)
- [OpenPGP.js improper key verification in signature subpackets](https://junglewise.ai/threats/cve-2019-9154-openpgp-js-improper-key-verification-in-signature-subpackets)
