A vulnerability has been identified in Steve where by default it was using an insecure option that did not validate the certificate presented by the remote server while performing a TLS connection. This could allow the execution of a man-in-the-middle (MitM) attack against services using Steve.
For example, Rancher relies on Steve as a dependency for its user interface (UI) to proxy requests to Kubernetes clusters. Users who have the permission to create a service in Rancher’s local cluster can take over Rancher’s UI and display their own UI to gather sensitive information. This is only possible when the setting ui-offline-preferred is manually set to remote (by default Rancher sets it to dynamic). This enables further attacks such as cross-site scripting (XSS), or tampering the UI to collect passwords from other users etc.
Please consult the associated MITRE ATT&CK - Technique - Adversary-in-the-Middle for further information about this category of attack.
Patched versions of Steve include releases v0.2.1, v0.3.3, v0.4.4 and v0.5.13.
This vulnerability is addressed by changing Steve to always verify a server’s certificate based on Go’s TLS settings.
If you can't upgrade to a fixed version, please make sure that you are only using Steve to connect to trusted servers.
If you have any questions or comments about this advisory:
| Software | From | Fixed in |
|---|---|---|
github.com/rancher/steve
|
0.2.0 | 0.2.1 |
github.com/rancher/steve
|
0.4.0 | 0.4.4 |
github.com/rancher/steve
|
0.5.0 | 0.5.13 |
github.com/rancher/steve
|
0.3.0 | 0.3.3 |