CVE-2019-11841 json
Golang/x/crypto message forgery vulnerability
published 7y ago modified last mo. also GHSA-x3jr-pf6g-c48f , GO-2023-1992 , EUVD-2022-5700
- cvss
- 5.9
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.0%
- EPSS 2.0% chance of exploitation in 30 days, percentile 80%
- public exploits
- 0
- none known
Summary
A message-forgery issue was discovered in crypto/openpgp/clearsign/clearsign.go in supplementary Go cryptography libraries 2019-03-25. According to the OpenPGP Message Format specification in RFC 4880 chapter 7, a cleartext signed message can contain one or more optional "Hash" Armor Headers. The "Hash" Armor Header specifies the message digest algorithm(s) used for the signature. However, the Go clearsign package ignores the value of this header, which allows an attacker to spoof it. Consequently, an attacker can lead a victim to believe the signature was generated using a different message digest algorithm than what was actually used. Moreover, since the library skips Armor Header parsing in general, an attacker can not only embed arbitrary Armor Headers, but also prepend arbitrary text to cleartext messages without invalidating the signatures.
Patch / fix
- go golang.org/x/crypto 0.0.0-20190424203555-c05e17bb3b2d
- golang-go.crypto Debian 14, Debian 13, Debian 12 1:0.0~git20200221.2aa609c-1
debian advisories DEBIAN-CVE-2019-11841
Is CVE-2019-11841 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerExploit prediction
2.00% chance of exploitation in the next 30 days, higher than 80% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- packetstormsecurity.com http://packetstormsecurity.com/files/152840/Go-Cryptography-Libraries-Cleartext-Message-Spoofing.html referenced PoC, tagged "exploit" by a source, unverified
- sec-consult.com https://sec-consult.com/en/blog/advisories/cleartext-message-spoofing-in-go-cryptography-libraries-cve-2019-11841/ referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 5.9 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 2.0 | 4.3 | AV:N/AC:M/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 5.9 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | golang.org/x/crypto | <0.0.0-20190424203555-c05e17bb3b2d |
0.0.0-20190424203555-c05e17bb3b2d |
Classification
- Weakness
-
- CWE-347 Improper Verification of Cryptographic Signature
References
-
github.com
/golang/crypto/commit/c05e17bb3b2dca130fc919668a96b4bec9eb9442
web
-
go.googlesource.com
/crypto/+/c05e17bb3b2dca130fc919668a96b4bec9eb9442
web, patch
-
go-review.git.corp.google.com
/c/crypto/+/173778
web, patch
-
packetstormsecurity.com
/files/152840/Go-Cryptography-Libraries-Cleartext-Message-Spoofing.html
web, exploit, third-party-advisory, vdb-entry
-
sec-consult.com
/en/blog/advisories/cleartext-message-spoofing-in-go-cryptography-libraries-cve-2019-11841/
exploit, third-party-advisory
-
sec-consult.com
/
third-party-advisory
-
go.googlesource.com
/crypto/
product, third-party-advisory
-
lists.debian.org
/debian-lts-announce/2019/09/msg00011.html
mailing-list, web, third-party-advisory
-
lists.debian.org
/debian-lts-announce/2020/10/msg00014.html
mailing-list, web, third-party-advisory
-
lists.debian.org
/debian-lts-announce/2023/06/msg00017.html
mailing-list, web
-
nvd.nist.gov
/vuln/detail/CVE-2019-11841
advisory
-
github.com
/golang/crypto/tree/master/openpgp/clearsign
package
-
groups.google.com
/d/msg/golang-openpgp/6vdgZoTgbIY/K6bBY9z3DAAJ
web
-
pkg.go.dev
/vuln/GO-2023-1992
web
-
web.archive.org
/web/20201207161832/https://sec-consult.com/en/blog/advisories/cleartext-message-spoofing-in-go-cryptography-l
web
Sources
- CVE List CVE-2019-11841
- GitHub Advisory GHSA-x3jr-pf6g-c48f
- NVD CVE-2019-11841
- OSV GO-2023-1992
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.