Cross-Site Request Forgery (CSRF) in crater-invoice/crater
Jan 27th 2022
An attacker is able to log out a user if a logged-in user visits the attacker's website.
Proof of Concept
<html> <body> <script>history.pushState('', '', '/')</script> <form action="https://demo.craterapp.com/auth/logout"> <input type="submit" value="Submit request" /> </form> <script> document.forms.submit(); </script> </body> </html>
This vulnerability is capable of forging users to unintentional logout.
One way GET could be abused here is that a person (competitor perhaps:) placed an image tag with
src="<your logout link>" anywhere on the internet, and if a user of your site stumbles upon that page, he will be unknowingly logged out. This is why it should be a POST with a
While this cannot harm a user's account, it can be a great annoyance and is a valid CSRF.