Cross-site scripting via file upload vulnerability in Solarwinds Web Help Desk


Solarwinds Web Help Desk centralizes and automates ticketing management tasks so you can better support your customers. Keep track of tasks, including ticket assignment, routing, and escalation. Link incident tickets to a single problem for better organization, associate problem tickets with IT assets, and track the history of asset service requests.

eSecForte Technologies Security Researcher – Abhinav Khanna found Cross-Site Scripting via file upload in the Solarwinds Web Help Desk and it has been assigned CVE-2019-16955 by the MITRE.



Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted websites. XSS attacks occur when an attacker uses a web application to send malicious code, generally in the form of a browser side script, to a different end-user. Flaws that allow these attacks to succeed are quite widespread and occur anywhere a web application uses input from a user within the output it generates without validating or encoding it.



  • Impersonate or masquerade as the victim user.
  • Carry out any action that the user is able to perform.
  • Read any data that the user is able to access.
  • Capture the user’s login credentials.
  • Perform virtual defacement of the website.
  • Inject Trojan functionality into the website.



  1. To prevent XSS in HTTP responses that aren’t intended to contain any HTML or JavaScript, you can use the Content-Type and X-Content-Type-Options headers to ensure that browsers interpret the responses in the way you intend.
  2. Properly validate the data that is entered by the end-user on both client-side and server-side.
  3. Use Content Security Policy to reduce the impact of Cross-Site Scripting, in case the vulnerability exists.
  4. Restrict file types accepted for upload.

Steps to Reproduce:

1. Open the application and log in using valid credentials.

crosssite scripting

2. After logging in, click on the Switch to Client account button.

crosssite scripting

3. Then, select the values for Request Type and Location parameters from their drop down options and click on Add File. Select the file and then click on Upload. Upload SVG file having XSS payload.

crosssite scripting
crosssite scripting
crosssite scripting

4. After uploading the file, click on save.

crosssite scripting

5. Then, note the ticket number and click on Switch to Tech account button.

crosssite scripting

6. Now, click on Tickets and select Group Tickets, open the ticket having your ticket number. Then, open the file attached with the ticket.

crosssite scripting

7. The XSS payload triggers on opening the SVG file.

Solar Winds

[Disclosure Process]

  1. Reported the Vulnerability to the Vendor Security or PSIRT Team.
  2. Acknowledged confirmed from the Vendor that vulnerability exists.
  3. CVE has been filed in NVD.
  4. The vendor confirms that the vulnerability is fixed or the latest version, the patch is released.
  5. Vulnerability disclosed to the public.





[Has vendor confirmed or acknowledged the vulnerability?]




Abhinav Khanna from eSec Forte Technologies Pvt Ltd