Title: CVE-2016-2046 – CROSS SITE SCRIPTING IN SOPHOS UTM 9
Product: Sophos UTM 9
Vendor: Sophos

Version: 9.350-12 with pattern version 92405 (potentially lower)

Vendor Notified Date: December 14, 2015

Vendor Resolved Date: December 18, 2015

Release Date: January 28, 2016

Risk: Medium

Authentication: Not Required

Remote: Yes

Description:

A cross-site scripting vulnerability exists in Sophos UTM 9.350-12 with pattern version 92405 that allows attackers to craft a hyperlink that contains a reflected XSS payload via the ‘lang’ parameter. If visited by the targeted user, the XSS payload gets stored in a local cookie variable which is re-executed whenever the UserPortal landing page is visited. By not properly sanitizing the language selection parameter, an attacker can inject arbitrary Javascript or modify page contents by injecting remote HTML content. This does not require that the user be authenticated to the application.

Exploit steps for proof-of-concept:

  1. The Sophos authentication page has a drop-down option to switch the language. When clicking the drop-down menu and selecting a language, the selection is passed back to the same page using the ‘lang’ URL parameter, which is not properly sanitized. It’s possible to inject malicious payloads into the language option to perform cross-site scripting. The payloads require slight modification to properly escape the vulnerable Javascript code block.
  2. The relevant Javascript code block with the XSS payload is: https://vulnerablehost.com/?lang=english”;alert(‘xss’);//
  3. A pop-up box is displayed as a result of the payload being executed.
  4. Reproduction URL: https://XXX.XXX.XXX.XXX/?lang=english”;alert(‘xss’);//
  5. This injection isn’t limited to just Javascript payloads. The