CVE-2023-41037
JavaScript vulnerability analysis and mitigation

Overview

OpenPGP.js, a JavaScript implementation of the OpenPGP protocol, was found to have a vulnerability (CVE-2023-41037) affecting versions up to v5.9.0. The vulnerability was discovered and disclosed on August 29, 2023, impacting the signature verification process in OpenPGP Cleartext Signed Messages (GitHub Advisory).

Technical details

The vulnerability stems from the way OpenPGP.js processes Cleartext Signed Messages. The software ignored any data preceding the "Hash: ..." texts when verifying the signature. These messages typically contain a "Hash: ..." header declaring the hash algorithm used to compute the signature digest. The vulnerability has been assigned a CVSS v3.1 base score of 4.3 (Medium) with the vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N (GitHub Advisory).

Impact

The vulnerability allows malicious actors to add arbitrary text to a third-party Cleartext Signed Message, potentially leading victims to believe that the arbitrary text was signed. This affects users or applications that verify the CleartextMessage by only checking the returned 'verified' property while discarding the associated 'data' information and visually trusting the contents of the original message (GitHub Advisory).

Exploitability

The vulnerability is exploitable when processing Cleartext Signed Messages. However, applications that check verificationResult.data to see the actually signed data, use getText(), or the text field are not vulnerable. Additionally, re-armoring a CleartextMessage object using armor() results in a sanitized version with the extraneous text removed (GitHub Advisory).

Mitigation and workarounds

The issue has been patched in version 5.10.1 (current stable version) and version 4.10.11 (legacy version). The fix rejects messages when calling openpgp.readCleartextMessage() in v5.10.1 and openpgp.cleartext.readArmored() in v4.10.11. For users unable to upgrade, the recommended workaround is to check the contents of verificationResult.data to see what data was actually signed, rather than visually trusting the contents of the armored message (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-71476HIGH8.7
  • JavaScript logoJavaScript
  • @nx/gcs-cache
NoYesAug 06, 2026
CVE-2026-71437MEDIUM6.5
  • JavaScript logoJavaScript
  • node-mermaid
NoYesAug 06, 2026
CVE-2026-71439MEDIUM5.3
  • JavaScript logoJavaScript
  • mermaid
NoYesAug 06, 2026
CVE-2026-71498MEDIUM5.1
  • JavaScript logoJavaScript
  • re2
NoYesAug 06, 2026
CVE-2026-71438LOW2.4
  • JavaScript logoJavaScript
  • mermaid
NoYesAug 06, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management