Stored XSS in Watu PRO allows unauthenticated attackers to do almost anything an admin can


Last revised:

An attacker able to convince an admin to visit a link of their choosing (e.g. through phishing) is able to execute arbitrary JavaScript. This makes use of a CSRF vulnerability (no nonce protection on the options form)

Current state: Fixed

CVSS Summary

CVSS base scores for this vulnerability
Score 5.8 Medium
Vector Network
Complexity Medium
Authentication None
Confidentiality Partial
Integrity Partial
Availability None
You can read more about CVSS base scores on Wikipedia or in the CVSS specification.

Proof of concept

If a logged-in administrator user clicks the submit button on this form, a JavaScript alert will display on /wp-admin/admin.php?page=watupro_options (in a real attack the form can be made to auto-submit using JavaScript):

<form action="http://localhost/wp-admin/admin.php?page=watupro_options" method="POST">
<input type="text" name="upload_file_types" value="&quot;>&lt;script>alert(1)&lt;/script>">
<input type="text" name="save_ajax_settings" value="Save Ajax Related Settings">
<input type="submit">

Advisory timeline

  • 2015-08-11: Discovered
  • 2015-08-11: Reported to Author via email
  • 2015-08-11: Author responded
  • 2015-08-26: Author reported fixed in version
  • 2015-09-01: Published

Mitigation/further actions

This issue has been discussed with the author, who disagrees that there is an exploitable issue. We maintain that the above proof of concept demonstrates this issue. Nonetheless, the author has told us that they have made changes to address the problem in version of this plugin. We have not verified these changes, so our recommendation is to upgrade to version or later, and ideally conduct your own security assessment of this plugin.