CVSS2
Attack Vector
NETWORK
Attack Complexity
MEDIUM
Authentication
NONE
Confidentiality Impact
PARTIAL
Integrity Impact
NONE
Availability Impact
NONE
AV:N/AC:M/Au:N/C:P/I:N/A:N
CVSS3
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
AI Score
Confidence
High
EPSS
Percentile
81.4%
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.
Author | Note |
---|---|
jdstrand | snapd contains an embedded copy of golang-go.crypto with the affected code snapd doesnโt import/use the salsa code directly, but does vendor golang-gopkg-macaroon.v1, which imports golang.org/x/crypto/nacl/secretbox which does import salsa and contains the affected salsa2020XORKeyStream. snapd uses secretbox.Open() and secretbox.Seal(), both of which use salsa.XORKeyStream() (which wraps salsa2020XORKeyStream) via the internal decrypt() and encrypt() functions, respectively. In macaroon.v1, encrypt() is only used via AddThirdPartyCaveat() and decrypt() via Verify(). . overlord/auth/auth.go in snapd uses Verify() in CheckMacaroon(), daemon/api.go uses CheckMacaroon() in UserFromRequest(), which is called by ServeHTTP(), the service used to process snap commands from the local system to the local snapd. This CVE does not affect decrypt() operations. . AddThirdPartyCaveat() is only used in unit tests, but not in the binaries of snapd builds. . For snapd, ignoring since only encryption operations (ie, secretbox.Seal()) are affected with regard to loss of confidentiality/predictability and this function is only ever (ultimately) called via the snapd unit tests. lxd contains an embedded copy of golang-go.crypto, but does not import golang.org/x/crypto/nacl/secretbox or salsa. lxd in cosmic and later does not contain the affected code. |
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
ubuntu | 18.04 | noarch | golang-go.crypto | <ย any | UNKNOWN |
ubuntu | 16.04 | noarch | golang-go.crypto | <ย any | UNKNOWN |
go.googlesource.com/crypto/+/b7391e95e576cacdcdd422573063bc057239113d
groups.google.com/forum/#!msg/golang-announce/tjyNcJxb2vQ/n0NRBziSCAAJ
launchpad.net/bugs/cve/CVE-2019-11840
nvd.nist.gov/vuln/detail/CVE-2019-11840
security-tracker.debian.org/tracker/CVE-2019-11840
www.cve.org/CVERecord?id=CVE-2019-11840
CVSS2
Attack Vector
NETWORK
Attack Complexity
MEDIUM
Authentication
NONE
Confidentiality Impact
PARTIAL
Integrity Impact
NONE
Availability Impact
NONE
AV:N/AC:M/Au:N/C:P/I:N/A:N
CVSS3
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
AI Score
Confidence
High
EPSS
Percentile
81.4%