-
Notifications
You must be signed in to change notification settings - Fork 9.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mitigate CSRF and DNS Rebinding attacks #9353
Comments
We've added Thanks for report! |
any cve assigned to these issues ? |
@sidhax I've attempted to assign CVE IDs through DWF but CoreOS is acquired by Red Hat so it was |
Two CVEs were assigned for this: CVE-2018-1098 etcd: Cross-site request forgery via crafted local POST forms |
Thanks @pedrohc |
Hi, does this affect stable release? and is there any plan to backport the security fix, especially 3.2.x? |
After explaining the issue in private with the security mailing list, we determined it is low enough in severity to make it a public discussion.
This issue is relevant only to etcd deployment on local networks with no authentication scheme set up. It may not be a common scenario but it affects anyone who work with etcd locally or on a local network and use it without authentication, which is the default. For the sake of demonstration, I'm using a scenario where etcd is deployed on localhost. This can be any LAN address though (the attacker would have to know the address as a perquisite, but localhost is pretty common).
The first issue is with CSRF. 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.
Example PoC:
The second issue is with DNS rebinding. It essentially means an attacker can control his DNS records to direct to localhost, and trick the browser into sending requests to localhost (or any other address).
There are many resources on how this attack works.
PoC here (based on taviso's work). If the issue is unclear though please let me know and I will explain the attack in further details.
Success example:
Whitelisting hostnames is a possible simple solution. See taviso's comment on this or the fix he sent to Transmission.
The text was updated successfully, but these errors were encountered: