###################################################################### # Exploit Title: Synology.com sub-domain OAuth exchange Reflected XSS (RXSS) # Date: 03/04/2014 # Author: Yann CAM @ Synetis - ASafety # Vendor or Software Link: www.synology.com # Version: / # Category: Reflected Cross Site Scripting # Google dork: # Tested on: Synology.com update sub-domain ###################################################################### Synology description : ====================================================================== Synology Inc., is a Taiwanese corporation that specializes in network attached storage (NAS) appliances. Synology’s line of NAS are known as the DiskStation for desktop models, and RackStation for rack-mount models. Synology's products are distributed worldwide and localized in several languages. Synology's headquarters are located in Taipei, Taiwan with subsidiaries located around the world. Vulnerability description : ====================================================================== A reflected XSS is available in the update.synology.com sub-domain. Through this vulnerability, an attacker could tamper with page rendering, redirect victims to fake Synology portals, or capture Synology's users credentials such cookies. It's also possible to interact with the OAuth authentication protocol scenario where the vulnerability is located. This reflected XSS is on GET "state" variable and is not properly sanitized before being used to his page. Proof of Concept : ====================================================================== A non-persistent XSS (RXSS) in "state" GET param is available in the update.synology.com sub-domain during OAuth CloudSync process. Tested on Firefox 33.1.1. If the CloudSync package is deployed in the DSM, it's possible to attach some public clouds to synchronized them with the NAS. During the process to attach the public cloud (like DropBox, GoogleDrive, etc.), there is multiple request through the OAuth protocol. Synology's OAuth page is opened to check the perms of the public cloud. It's possible to inject JavaScript into this context. With the control of this context, an attacker can catch and control the OAuth exchanges and validation. PoC: https://update.synology.com/CloudSync/db.php?state=https%3A%2F%2Fwww.asafety.fr&code=pIBf5bHN8zMAAAAAAAABRU0-iCumtCrexU63hCMeguX Screenshots : ====================================================================== - http://www.asafety.fr/data/20141123-RXSS_synology_synetis_001.png - http://www.asafety.fr/data/20141123-RXSS_synology_asafety_002.png Solution: ====================================================================== Fixed by Synology security team. Additional resources / article and screenshots : ====================================================================== - https://www.synology.com/ - http://www.asafety.fr/vuln-exploit-poc/contribution-synology-injection-de-code-javascript-xss - http://www.synetis.com Report timeline : ====================================================================== 2014-11-23 : Synology security team alerted with details and PoC. 2014-11-25 : Synology response and ack. 2014-11-26 : Vulnerability confirmed and fixed by Synology security team. 2014-11-26 : ASafety confirms the fix. 2014-11-27 : Synology thanks the confirmation. 2015-04-03 : ASafety public article 2015-04-03 : Public advisory Credits : ====================================================================== 88888888 88 888 88 88 888 88 88 788 Z88 88 88.888888 8888888 888888 88 8888888. 888888. 88 88 888 Z88 88 88 88 88 88 88 8888888 88 88 88 88 88 88 88 88 888 888 88 88 88 88 88888888888 88 88 888888 88 88 88 8. 88 88 88 88 88 888 888 ,88 8I88 88 88 88 88 88 88 .88 .88 ?8888888888. 888 88 88 88888888 8888 88 =88888888 888. 88 88 www.synetis.com 8888 Consulting firm in management and information security Yann CAM - Security Consultant @ Synetis | ASafety -- SYNETIS | ASafety CONTACT: www.synetis.com | www.asafety.fr