The plugin adds a subtitle field and provides a shortcode to display it via [wp_subtitle]. The subtitle is stored as a custom post meta with the key: βwps_subtitleβ, which is sanitized upon post save/update, however is not sanitized when updating it directly from the post meta update button (via AJAX) - and this makes the XSS exploitable by authenticated users with a role as low as contributor.
- Create a post as contributor+ with the following shortcode in it [wp_subtitle], save the post - Add a custom field named "wps_subtitleβ with the following payload as value: and save it without updating the post (from the custom fields meta box) - View/preview the post/page to trigger the XSS