CVE-2019-11840: Medium severity Golang crypto vulnerability
A flaw was found in the amd64 implementation of the golang.org/x/crypto/salsa20 and golang.org/x/crypto/salsa20/salsa. If more than 256 GiB of keystream is generated, or if the counter otherwise grows greater than 32 bits, the amd64 implementation will first generate incorrect output, and then cycle back to previously generated keystream. Repeated keystream bytes can lead to loss of confidentiality in encryption applications, or to predictability in CSPRNG applications.
Upstream patch:
https://go.googlesource.com/crypto/+/b7391e95e576cacdcdd422573063bc057239113d
References:
https://groups.google.com/forum/#!msg/golang-announce/tjyNcJxb2vQ/n0NRBziSCAAJ
Other sources
An issue was discovered in supplementary Go cryptography libraries, aka golang-googlecode-go-crypto, before 2019-03-20. A flaw was found in the amd64 implementation of golang.org/x/crypto/salsa20 and golang.org/x/crypto/salsa20/salsa. If more than 256 GiB of keystream is generated, or if the counter otherwise grows greater than 32 bits, the amd64 implementation will first generate incorrect output, and then cycle back to previously generated keystream. Repeated keystream bytes can lead to loss of confidentiality in encryption applications, or to predictability in CSPRNG applications.
An issue was discovered in the supplementary Go cryptography library, golang.org/x/crypto, before v0.0.0-20190320223903-b7391e95e576. A flaw was found in the amd64 implementation of the golang.org/x/crypto/salsa20 and golang.org/x/crypto/salsa20/salsa packages. If more than 256 GiB of keystream is generated, or if the counter otherwise grows greater than 32 bits, the amd64 implementation will first generate incorrect output, and then cycle back to previously generated keystream. Repeated keystream bytes can lead to loss of confidentiality in encryption applications, or to predictability in CSPRNG applications.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/golang.org/x/cryptoto a version that resolves this vulnerability.Fixed in 0.0.0-20190320223903-b7391e95e576 - Upgrade
Upgrade
redhat/atomic-enterprise-service-catalogto a version that resolves this vulnerability.Fixed in 1:3.11.374-1.git.1675.738abcc.el7 - Upgrade
Upgrade
redhat/atomic-openshiftto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.0.ebd3ee9.el7 - Upgrade
Upgrade
redhat/atomic-openshift-cluster-autoscalerto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.0.2996f62.el7 - Upgrade
Upgrade
redhat/atomic-openshift-deschedulerto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.299.f128e96.el7 - Upgrade
Upgrade
redhat/atomic-openshift-dockerregistryto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.481.e6a880c.el7 - Upgrade
Upgrade
redhat/atomic-openshift-metrics-serverto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.53.9df25a9.el7 - Upgrade
Upgrade
redhat/atomic-openshift-node-problem-detectorto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.263.28335fb.el7 - Upgrade
Upgrade
redhat/atomic-openshift-service-idlerto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.15.523a1f7.el7 - Upgrade
Upgrade
redhat/atomic-openshift-web-consoleto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.647.9e78d83.el7 - Upgrade
Upgrade
redhat/golang-github-openshift-oauth-proxyto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.439.966c536.el7 - Upgrade
Upgrade
redhat/golang-github-prometheus-alertmanagerto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.0.3abd2a5.el7 - Upgrade
Upgrade
redhat/golang-github-prometheus-prometheusto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.5026.29379c4.el7 - Upgrade
Upgrade
redhat/openshift-enterprise-autohealto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.218.9cf7939.el7 - Upgrade
Upgrade
redhat/openshift-enterprise-cluster-capacityto a version that resolves this vulnerability.Fixed in 0:3.11.374-1.git.379.80bd08f.el7 - Upgrade
Upgrade
redhat/openshiftto a version that resolves this vulnerability.Fixed in 0:4.3.0-202001131753.git.0.0aee6a8.el7 - Upgrade
Upgrade
redhat/golang.org/x/crypto v0.0.0to a version that resolves this vulnerability.Fixed in 0.20190320223903
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the severity of CVE-2019-11840?
CVE-2019-11840 is considered a moderate severity vulnerability due to the potential for incorrect keystream generation.
How do I fix CVE-2019-11840?
To fix CVE-2019-11840, update your affected software packages to the specified remedial versions in the package descriptions.
Which software is affected by CVE-2019-11840?
CVE-2019-11840 affects multiple packages including golang.org/x/crypto and several atomic-openshift components.
What is the exploit potential of CVE-2019-11840?
The exploit potential of CVE-2019-11840 lies in generating incorrect output if the keystream exceeds 256 GiB.
Are there any workarounds for CVE-2019-11840?
There are no specific workarounds recommended for CVE-2019-11840; patching is the best mitigation strategy.