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

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). 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
    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

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.