A cross-site request forgery flaw was found in etcd 3.3.1 and earlier. An attacker can set up a website that tries to send a POST request to the etcd server and modify a key. Adding a key is done with PUT so it is theoretically safe (can't PUT from an HTML form or such) but POST allows creating in-order keys that an attacker can send.
etcd versions 3.2.x before 3.2.26 and 3.3.x before 3.3.11 are vulnerable to an improper authentication issue when role-based access control (RBAC) is used and client-cert-auth is enabled. If an etcd client server TLS certificate contains a Common Name (CN) which matches a valid RBAC username, a remote attacker may authenticate as that user with any valid (trusted) client certificate in a REST API request to the gRPC-gateway.
Vulnerability type Denial of Service
Detail The etcd gateway is a simple TCP proxy to allow for basic service discovery and access. However, it is possible to include the gateway address as an endpoint. This results in a denial of service, since the endpoint can become stuck in a loop of requesting itself until there are no more available file descriptors to accept connections on the gateway.
References Find out more on this vulnerability in the security audit report
For more information If you have any questions or comments about this advisory: Contact the etcd security committee
A flaw was found in etcd, where it does not perform any password length validation, which allows for very short passwords, such as those with a length of one. This flaw allows an attacker to guess or brute-force users' passwords with little computational effort. The highest threat from this vulnerability is to confidentiality.
Vulnerability type Access Controls
Detail etcd creates certain directory paths (etcd data directory and the directory path when provided to automatically generate self-signed certificates for TLS connections with clients) with restricted access permissions (700) by using the os.MkdirAll. This function does not perform any permission checks when a given directory path exists already. Specific Go Package Affected github.com/etcd-io/etcd/pkg/fileutil Workarounds Make sure these directories have the desired permit (700).
References Find out more on this vulnerability in the security audit report
For more information If you have any questions or comments about this advisory: Contact the etcd security committee
A flaw was found in etcd, where it is possible to have an entry index greater than the number of entries in the ReadAll method in wal/wal.go. This can cause issues when WAL entries are being read during consensus, as an arbitrary etcd consensus participant can go down from a runtime panic when reading the entry. The highest threat from this vulnerability is to system availability.
Vulnerability type Cryptography
Workarounds Refer to the gateway documentation. The vulnerability was spotted due to unclear documentation of how the gateway handles endpoints validation.
Detail When starting a gateway, TLS authentication will only be attempted on endpoints identified in DNS SRV records for a given domain, which occurs in the discoverEndpoints function. No authentication is performed against endpoints provided in the --endpoints flag. The auditors has noted that appropriate documentation of this validation functionality plus deprecation of this misleading functionality is an acceptable path forward. References Find out more on this vulnerability in the security audit report
For more information If you have any questions or comments about this advisory: Contact the etcd security committee
Vulnerability type Data Validation
Detail The size of a record is stored in the length field of a WAL file and no additional validation is done on this data. Therefore, it is possible to forge an extremely large frame size that can unintentionally panic at the expense of any RAFT participant trying to decode the WAL.
Specific Go Packages Affected github.com/etcd-io/etcd/wal
References Find out more on this vulnerability in the security audit report
For more information If you have any questions or comments about this advisory: Contact the etcd security committee
DNS rebinding vulnerability found in etcd 3.3.1 and earlier. An attacker can control his DNS records to direct to localhost, and trick the browser into sending requests to localhost (or any other address).
etcd is a distributed key-value store for the data of a distributed system. Prior to versions 3.4.26 and 3.5.9, the LeaseTimeToLive API allows access to key names (not value) associated to a lease when Keys parameter is true, even a user doesn't have read permission to the keys. The impact is limited to a cluster which enables auth (RBAC). Versions 3.4.26 and 3.5.9 fix this issue. There are no known workarounds.
End of life: 10/15/2021, Latest version: 3.3.27
End of life: 10/15/2021, Latest version: 3.3.27
End of life: 3/28/2021, Latest version: 3.2.32
End of life: 3/28/2021, Latest version: 3.2.32
End of life: 1/20/2017, Latest version: 3.0.17
End of life: 1/20/2017, Latest version: 3.0.17
End of life: 10/10/2018, Latest version: 3.1.20
End of life: 10/10/2018, Latest version: 3.1.20