This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Sophos 9.0.7 breaks browser AJAX CORS support in Chrome, Firefox.

Hi,

First, I hope this is posted in the correct place, apologies if not.

It seems like the, rather cryptically named, "Block malicious downloads from websites, protecting your Mac from obsfucated, polymorphic and zero-day threats before reaching your browser" in 9.0.7 - Web Protection breaks AJAX CORS support in Chrome and Firefox (but not Safari).

This has been seen on OS X10.7, 10.8 and possibly 10.9. 

Is this the actual intended behaviour of this feature or does it actually do anything else?


If it is just a way of disabling browser CORS support it would be really helpful if you'd just label it as such.  Even mentioning XSS would give a clue as to what Sophos is doing.

It would also helpful to mention what this feature does in the knowledge base as CORS headers can be fiddly to debug at the best of times.

AJAX CORS is a legitimate way to consume RESTful APIs in many thick client web application.

At the very least it would be nice it would respect proxy exceptions for intranet services and allow CORS to work for internal domains.

If it's a bug, then could you please open a ticket on it?

Thank you.

:46923


This thread was automatically locked due to age.
  • Hi Ajax,

    If you are a Sophos customer could you please call support so that we can try and diagnose this issue?

    I asked internally for sme information on what you are seeing and received the following:

    There is certainly nothing in the code that specifically does anything special with AJAX CORS although if the browser does something with the additional HTTP methods that CORS will produce then its possible that the filter in SAV could see issues.

    The fact that the Ajax says this is only an issue on Chrome and Firefox, but not on Safari, indicates that the preflight interpreters for the CORS methods are different between those browsers, and so the traffic could be slightly different as well.

     

    To investigate this then we would need an example site to go to that generates the issue, or a tcpdump from the customer on Chrome (where it breaks), and on Safari (where it succeeds).

     Darren.

    :46965
  • Thanks for the reply Darren.

    We actually discovered that if either of the "Web Protection - General" options are turned on then CORS requests are left pending.

    Our IT systems support team are in the process of passing on a proper ticket to our Sophos rep.

    The applications that have been affected are all private intranet systems so unfortunately the won't be available for testing but we were able to get the same result using a general CORS test service:-

    http://client.cors-api.appspot.com/client#?client_method=GET&client_credentials=true&client_headers=X-Foo%3A%201&server_enable=true&server_status=200&server_credentials=true&server_tabs=local&server_headers=X-Foo

    If you try that URL with the Chrome web inspector/network tab open you should expect to see a credentials flag error as the expected status message on the preflight OPTIONS request and the accompanying GET request is not made.

    What we're seeing with either of the Web Protect options enabled is that the OPTIONS request comes back with status 200 OK and GET request is made but stays permanently in the "pending" state.

    I'll try to get proper TCP dumps passed along with support request.  Actually, I can ask our systems people if they can put me on a call if that helps.

    Many thanks,

    Sean.

    :46967
  • I lost hours to this today. Well done Ajax and team for finding the culprit. 

    Sophos, breaking legitimate CORS activity is not an acceptable strategy. As mentioned in Ajax's post, this will cause issues on many rich client web applications. I am very much hoping this is a bug and not a feature!

    Andy

    :46983
  • Hi Andy,

    Yep, it's defenitely infuriating.  What makes it even worse is that it's not consistent.  Some requests get through fine and some stay pending with no pattern that I could make out.

    The good news is that Sophos very quickly and professionally opened a support ticket for us about this and are looking into what's happening.

    So I think they're taking this seriously and should get it fixed ASAP.

    Cheers,

    Sean.

    :47083
  • I can confirm this is an issue with the Sophos Software. This is also mentioned:

    http://stackoverflow.com/questions/20969553/json-rest-get-request-is-pending-with-cors-on-tomcat-for-chrome-firefox

    http://stackoverflow.com/questions/20389410/chrome-and-firefox-cors-ajax-calls-get-aborted-on-some-mac-machines

    Sometimes it works, sometimes not. Always works well in Safari, Chrome and Firefox have the same issue. Turning off the webscanner solved the CORS issues.

    @ajax: Could you post the Support-Ticket number? This would allow us to track the updates.

    :47157
  • After spending about 11 hours on this issue I can confirm that the bug (feature?) still exists in Sophos AV 9.0.11. I am using a Spring servlet as a REST API on a different domain than my client UI that makes the requests. I had the exact same problem as the OP when either of the security settings for web traffic were turned on.

    This must not only be a Sophos AV problem since my teammates had the same issue and they are running Windows with Kasperskey. The official CORS spec is revised as of this January so the major AV vendors are probably still changing their programs to suit the ever-changing technologies.

    :51092
  • This issue was resolved in the 9.1.5 release, it was not back ported to 9.0.x

    :51314
  • For anyone who stubmled onto this post due to a "rant of the day" link then you should get your free version updated to 9.1.5 preview. Follow the info at this link:

    http://openforum.sophos.com/t5/Sophos-Anti-Virus-for-Mac-Home/SAV-for-Mac-9-1-Preview/td-p/18025

    The free version gets the same updates as the business version.

    :52613

    ---

    Bob Cook (bob.cook@sophos.com) Director, Software Development