Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

[R2] Sophos Web Protection Appliance ftp_redirect.php s Parameter Reflected XSS

Medium

Synopsis

While investigating and authoring a plugin for a recently disclosed open redirect weakness (NSWA-989) in Sophos Web Application that was recently patched in version 4.3.0, Tenable discovered that the same script and parameter could be used for a reflected cross-site scripting attack. The offending code can be found in ftp_redirect.php.

The disclosed open redirect is exercised by controlling the $_GET[‘s’] used to create $myself. $myself is then assigned to window.location.href which will trigger the redirect. However, the $_GET[‘s’] can also be used to trigger a reflected XSS. Unfortunately, PHP on the Sophos Web Application server is configured to escape all quotes in $_GET[‘s’]. In theory, this limits the JavaScript that we can use to carry out such an XSS attack. For example, alert(“<3”); becomes alert(\”<3\”); and would fail to execute. In reality, escaping quotes via PHP is a waste of time and it can be bypassed without much effort. We crafted a PoC that will pop up the ASCII heart for Sophos when reporting it. <3

Solution

Sophos has already released Web Protection Appliance 4.3.0 which also fixed this issue, but the XSS was not disclosed.

Sophos reintroduced the vulnerability in 4.3.1.2 and a patch was released in 4.3.2.

Disclosure Timeline

2016-10-17 - Sophos Web Protection Appliance 4.3.0 released
2016-11-08 - Issue discovered
2016-11-10 - Issue reported to Sophos via [email protected]
2016-12-11 - Pinged vendor to confirm they received report
2016-12-12 - Vendor confirms receipt, confirms fixed in 4.3.0.0 as part of NSWA-989
2016-12-12 - Tenable says we will try to confirm (eval copy updates were not working for us previously)
2017-01-09 - Tenable confirms 4.3.0.2 not vulnerable, so 4.3.0.0 fix as vendor notes is correct
2017-05-04 - Tenable notices a regression in 4.3.1.2
2017-05-08 - Issue reported to vendor via [email protected]
2017-05-08 - Vendor acks report
2017-06-05 - Vendor publishes fix in 4.3.2

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]