Description
The Paypal Shortcode plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'amount' and 'name' shortcode attributes in all versions up to, and including, 0.3. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes. The swer_paypal_shortcode() function extracts shortcode attributes using extract() and shortcode_atts() at line 89, then directly concatenates the $name and $amount values into HTML input element value attributes at lines 105-106 without applying esc_attr() or any other escaping function. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
swergroup Paypal Shortcodes
Default version status: unaffected
0 to ≤ 0.3affected
References
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a9521ae8-e20e-49dd-a402-5521f8d2d98e?source=cve ↗
- https://plugins.trac.wordpress.org/browser/paypal-shortcodes/trunk/paypal-shortcodes.php#L106 ↗
- https://plugins.trac.wordpress.org/browser/paypal-shortcodes/tags/0.3/paypal-shortcodes.php#L106 ↗
- https://plugins.trac.wordpress.org/browser/paypal-shortcodes/trunk/paypal-shortcodes.php#L105 ↗
- https://plugins.trac.wordpress.org/browser/paypal-shortcodes/tags/0.3/paypal-shortcodes.php#L105 ↗
- https://plugins.trac.wordpress.org/browser/paypal-shortcodes/trunk/paypal-shortcodes.php#L89 ↗
- https://plugins.trac.wordpress.org/browser/paypal-shortcodes/tags/0.3/paypal-shortcodes.php#L89 ↗