CVE-2015-6535: Stored XSS in YouTube Embed (WordPress plugin) allows admins to compromise super admins

2015-10-26T00:00:00
ID SECURITYVULNS:DOC:32647
Type securityvulns
Reporter Securityvulns
Modified 2015-10-26T00:00:00

Description

Details

Software: YouTube Embed Version: 3.3.2 Homepage: https://wordpress.org/plugins/youtube-embed/ CVE ID: CVE-2015-6535 (Pending) CWE ID: CWE-79 CVSS: 5.5 (Medium; AV:N/AC:L/Au:S/C:P/I:P/A:N)

Description

A stored XSS vulnerability in YouTube Embed 3.3.2 (and possibly earlier versions) allows admin users to compromise other admins and super admins.

YouTube Embed is a WordPress plugin with over 30,000 active installs.

Vulnerability

Admins on multisite installs can inject arbitrary JavaScript into pages visible to super admins via the plugin's unsanitized profile name field.

Note: Admins on multisite installs lack the unfiltered_html capability – only super admins can enter unfiltered html [2].

From youtube-embed/includes/options-profiles.php:

31: $options[ 'name' ] = $_POST[ 'youtube_embed_name' ]; … 95: echo '<div class="updated fade"><p><strong>' . __( $options[ 'name' ].' Profile Saved.' ) . "</strong></p></div>\n";

Proof of concept

  1. As an admin user authorized for plugins, go to the YouTube Embed Profiles page.
  2. Choose a profile from the drop down list on the right and click 'Change profile'.
  3. Enter an XSS payload (e.g. <script>alert(1)</script>) into the 'Profile name' field.
  4. Log out and log in as a super admin or a different admin.
  5. Navigate to the YouTube Embed Options page.

This has been tested with Firefox 38.2.0 on Debian.

Mitigation

Upgrade the plugin to version 3.3.3 or later.

Timeline

2015-08-19: Discovered 2015-08-19: Requested vulnerability reporting instructions via vendor support form 2015-08-20: Vendor asked that vulnerability be reported on the vendor's website plugin page 2015-08-20: Reported to vendor via plugin page 2015-08-20: Requested CVE number 2015-08-23: Vendor released version 3.3.3 – confirmed fixed 2015-08-26: Public Disclosure

References

[1] https://wordpress.org/plugins/youtube-embed/changelog/ [2] https://codex.wordpress.org/Roles_and_Capabilities#Additional_Admin_Capabilities