CVE-2019-11840: Medium severity Golang crypto vulnerability

Published Mar 20, 2019
·
Updated

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

22 affected componentsFixes available
go/golang.org/x/crypto<0.0.0-20190320223903-b7391e95e576
0.0.0-20190320223903-b7391e95e576
redhat/atomic-enterprise-service-catalog<1:3.11.374-1.git.1675.738abcc.el7
1:3.11.374-1.git.1675.738abcc.el7
redhat/atomic-openshift<0:3.11.374-1.git.0.ebd3ee9.el7
0:3.11.374-1.git.0.ebd3ee9.el7
redhat/atomic-openshift-cluster-autoscaler<0:3.11.374-1.git.0.2996f62.el7
0:3.11.374-1.git.0.2996f62.el7
redhat/atomic-openshift-descheduler<0:3.11.374-1.git.299.f128e96.el7
0:3.11.374-1.git.299.f128e96.el7
redhat/atomic-openshift-dockerregistry<0:3.11.374-1.git.481.e6a880c.el7
0:3.11.374-1.git.481.e6a880c.el7
redhat/atomic-openshift-metrics-server<0:3.11.374-1.git.53.9df25a9.el7
0:3.11.374-1.git.53.9df25a9.el7
redhat/atomic-openshift-node-problem-detector<0:3.11.374-1.git.263.28335fb.el7
0:3.11.374-1.git.263.28335fb.el7
redhat/atomic-openshift-service-idler<0:3.11.374-1.git.15.523a1f7.el7
0:3.11.374-1.git.15.523a1f7.el7
redhat/atomic-openshift-web-console<0:3.11.374-1.git.647.9e78d83.el7
0:3.11.374-1.git.647.9e78d83.el7
redhat/golang-github-openshift-oauth-proxy<0:3.11.374-1.git.439.966c536.el7
0:3.11.374-1.git.439.966c536.el7
redhat/golang-github-prometheus-alertmanager<0:3.11.374-1.git.0.3abd2a5.el7
0:3.11.374-1.git.0.3abd2a5.el7
redhat/golang-github-prometheus-prometheus<0:3.11.374-1.git.5026.29379c4.el7
0:3.11.374-1.git.5026.29379c4.el7
redhat/openshift-enterprise-autoheal<0:3.11.374-1.git.218.9cf7939.el7
0:3.11.374-1.git.218.9cf7939.el7
redhat/openshift-enterprise-cluster-capacity<0:3.11.374-1.git.379.80bd08f.el7
0:3.11.374-1.git.379.80bd08f.el7
redhat/openshift<0:4.3.0-202001131753.git.0.0aee6a8.el7
0:4.3.0-202001131753.git.0.0aee6a8.el7
redhat/golang.org/x/crypto v0.0.0<0.20190320223903
0.20190320223903
Golang crypto<2019-03-20
Debian Debian Linux=8.0
Debian Debian Linux=9.0
Golang crypto
Debian Debian Linux=10.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/golang.org/x/crypto to a version that resolves this vulnerability.

    Fixed in 0.0.0-20190320223903-b7391e95e576
  2. Upgrade

    Upgrade redhat/atomic-enterprise-service-catalog to a version that resolves this vulnerability.

    Fixed in 1:3.11.374-1.git.1675.738abcc.el7
  3. Upgrade

    Upgrade redhat/atomic-openshift to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.0.ebd3ee9.el7
  4. Upgrade

    Upgrade redhat/atomic-openshift-cluster-autoscaler to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.0.2996f62.el7
  5. Upgrade

    Upgrade redhat/atomic-openshift-descheduler to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.299.f128e96.el7
  6. Upgrade

    Upgrade redhat/atomic-openshift-dockerregistry to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.481.e6a880c.el7
  7. Upgrade

    Upgrade redhat/atomic-openshift-metrics-server to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.53.9df25a9.el7
  8. Upgrade

    Upgrade redhat/atomic-openshift-node-problem-detector to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.263.28335fb.el7
  9. Upgrade

    Upgrade redhat/atomic-openshift-service-idler to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.15.523a1f7.el7
  10. Upgrade

    Upgrade redhat/atomic-openshift-web-console to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.647.9e78d83.el7
  11. Upgrade

    Upgrade redhat/golang-github-openshift-oauth-proxy to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.439.966c536.el7
  12. Upgrade

    Upgrade redhat/golang-github-prometheus-alertmanager to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.0.3abd2a5.el7
  13. Upgrade

    Upgrade redhat/golang-github-prometheus-prometheus to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.5026.29379c4.el7
  14. Upgrade

    Upgrade redhat/openshift-enterprise-autoheal to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.218.9cf7939.el7
  15. Upgrade

    Upgrade redhat/openshift-enterprise-cluster-capacity to a version that resolves this vulnerability.

    Fixed in 0:3.11.374-1.git.379.80bd08f.el7
  16. Upgrade

    Upgrade redhat/openshift to a version that resolves this vulnerability.

    Fixed in 0:4.3.0-202001131753.git.0.0aee6a8.el7
  17. Upgrade

    Upgrade redhat/golang.org/x/crypto v0.0.0 to a version that resolves this vulnerability.

    Fixed in 0.20190320223903

Event History

Mar 20, 2019
CVE Published
12:00 AM
Mar 21, 2019
Data Sourced
via Red Hat·08:17 PM
DescriptionSeverityAffected Software
May 9, 2019
CVE Published
via MITRE·12:00 AM
Data Sourced
via MITRE·12:00 AM
Description
Data Sourced
via NVD·04:29 PM
RemedyDescriptionSeverityWeaknessAffected Software
May 24, 2022
Advisory Published
04:45 PM

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

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.

2

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.

3

Which software is affected by CVE-2019-11840?

CVE-2019-11840 affects multiple packages including golang.org/x/crypto and several atomic-openshift components.

4

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.

5

Are there any workarounds for CVE-2019-11840?

There are no specific workarounds recommended for CVE-2019-11840; patching is the best mitigation strategy.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203