# CVE-2023-41037: OpenPGP.js cleartext signed message signature spoofing

Source: https://junglewise.ai/threats/cve-2023-41037-openpgp-js-cleartext-signed-message-signature-spoofing  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2023-08-29. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2023-41037 · Severity: low · CVSS 3.1 · Published 2023-08-29

OpenPGP.js is a JavaScript library that encrypts and verifies digitally signed messages. An attacker can inject fake unsigned text into a cleartext signed message to make it appear legitimate when read directly, potentially deceiving users who visually inspect the message without checking the library's verified data field.

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

## Quick answers

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

**How severe is CVE-2023-41037?** Low severity, with a CVSS score of 3.1, published 29 August 2023.

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

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

**How is CVE-2023-41037 attacked?** It is attacked over the network.

**Am I affected by CVE-2023-41037?** 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.10.11 or later

  ```sh
  npm install openpgp@4.10.11
  ```


## Technical details

OpenPGP.js versions up to 5.9.0 failed to validate cleartext signed messages correctly, ignoring any data preceding the "Hash: ..." header during signature verification. An attacker can prepend arbitrary unsigned text to a legitimate signed message; the library still reports the signature as verified but only actually signed the portion after the Hash header. Exploitation requires user interaction—specifically, a user or application trusting the visible message content rather than checking the verificationResult.data field. The vulnerability is mitigated if applications programmatically verify the actual signed data (verificationResult.data) or re-armor messages via armor(). Patched versions 5.10.1 (current) and 4.10.11 (legacy) now reject malformed cleartext messages.

## Affected products

- OpenPGP.js openpgp 4.10.10 and earlier, 5.0.0 to 5.10.0

## Identifiers

- CVE-2023-41037
- GHSA-ch3c-v47x-4pgp

## Timeline

- 2023-08-29: disclosed
- 2023-08-29: patched: Patches released: v5.10.1 and v4.10.11

## References

- [https://github.com/openpgpjs/openpgpjs/security/advisories/GHSA-ch3c-v47x-4pgp](https://github.com/openpgpjs/openpgpjs/security/advisories/GHSA-ch3c-v47x-4pgp)

## Related threats

- [OpenPGP.js message signature verification spoofing](https://junglewise.ai/threats/cve-2025-47934-openpgp-js-message-signature-verification-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 message signature type bypass](https://junglewise.ai/threats/cve-2019-9153-openpgp-js-message-signature-type-bypass)
- [OpenPGP.js improper key verification in signature subpackets](https://junglewise.ai/threats/cve-2019-9154-openpgp-js-improper-key-verification-in-signature-subpackets)
