MS-ISAC CYBERSECURITY ADVISORIES

MS-ISAC ADVISORY NUMBER:
2017-017

DATE(S) ISSUED:
03/08/2017

SUBJECT:
Multiple Vulnerabilities in Mozilla Firefox Could Allow for Arbitrary Code Execution

OVERVIEW:

Multiple vulnerabilities have been identified in Mozilla Firefox and Firefox Extended Support Release (ESR), which could allow for arbitrary code execution. Mozilla Firefox is a web browser used to access the Internet. Mozilla Firefox ESR is a version of the web browser intended to be deployed in large organizations. Successful exploitation of the most severe of these vulnerabilities could allow for arbitrary code execution. Depending on the privileges associated with the user, an attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than those who operate with administrative user rights.

THREAT INTELLIGENCE:

There is no evidence of these vulnerabilities being exploited in the wild.

SYSTEMS AFFECTED:

Mozilla Firefox versions prior to 52

Firefox ESR versions prior to 45.8

RISK:

Government:

·Large and medium government entities:High

·Small government: Medium

Businesses:

·Large and medium business entities:High

·Small business entities: Medium

Home users: Low

TECHNICAL SUMMARY:

Mozilla has confirmed the following vulnerabilities in Firefox and Firefox Extended Support Release (ESR).

  • JIT-spray targeting asm.js combined with a heap spray allows for a bypass of ASLR and DEP protections leading to potential memory corruption attacks (CVE-2017-5400).
  • A crash triggerable by web content in which an ErrorResult references unassigned memory due to a logic error. The resulting crash may be exploitable (CVE-2017-5401).
  • A use-after-free can occur when events are fired for a FontFace object after the object has been already been destroyed while working with fonts. This results in a potentially exploitable crash (CVE-2017-5402).
  • When adding a range to an object in the DOM, it is possible to use addRange to add the range to an incorrect root object. This triggers a use-after-free, resulting in a potentially exploitable crash (CVE-2017-5403).
  • A use-after-free error can occur when manipulating ranges in selections with one node inside a native anonymous tree and one node outside of it. This results in a potentially exploitable crash (CVE-2017-5404).
  • A segmentation fault can occur in the Skia graphics library during some canvas operations due to issues with mask/clip intersection and empty masks (CVE-2017-5406).
  • Using SVG filters that don't use the fixed point math implementation on a target iframe, a malicious page can extract pixel values from a targeted user. This can be used to extract history information and read texXt values across domains. This violates same-origin policy and leads to information disclosure (CVE-2017-5407).
  • Memory corruption resulting in a potentially exploitable crash during garbage collection of JavaScript due errors in how incremental sweeping is managed for memory cleanup (CVE-2017-5410).
  • A use-after-free can occur during buffer storage operations within the ANGLE graphics library, used for WebGL content. The buffer storage can be freed while still in use in some circumstances, leading to a potentially exploitable crash.  (CVE-2017-5411).
  • The Mozilla Windows updater can be called by a non-privileged user to delete an arbitrary local file by passing a special path to the callback parameter through the Mozilla Maintenance Service, which has privileged access  (CVE-2017-5409).
  • Video files loaded video captions cross-origin without checking for the presence of CORS headers permitting such cross-origin use, leading to potential information disclosure for video captions (CVE-2017-5408).
  • A buffer overflow read during SVG filter color value operations, resulting in data exposure (CVE-2017-5412).
  • A segmentation fault can occur during some bidirectional layout operations (CVE-2017-5413).
  • The file picker dialog can choose and display the wrong local default directory when instantiated. On some operating systems, this can lead to information disclosure, such as the operating system or the local account name (CVE-2017-5414).
  • An attack can use a blob URL and script to spoof an arbitrary addressbar URL prefaced by blob: as the protocol, leading to user confusion and further spoofing attacks (CVE-2017-5415).
  • In certain circumstances a networking event listener can be prematurely released. This appears to result in a null dereference in practice (CVE-2017-5416).
  • When dragging content from the primary browser pane to the addressbar on a malicious site, it is possible to change the addressbar so that the displayed location following navigation does not match the URL of the newly loaded page. This allows for spoofing attacks (CVE-2017-5417).
  • The Gecko Media Plugin sandbox allows access to local files that match specific regular expressions. On OS OX, this matching allows access to some data in subdirectories of /private/varthat could expose personal or temporary data. This has been updated to not allow access to /private/var and its subdirectories.(CVE-2017-5425).
  • On Linux, if the secure computing mode BPF (seccomp-bpf) filter is running when the Gecko Media Plugin sandbox is started, the sandbox fails to be applied and items that would run within the sandbox are run protected only by the running filter which is typically weak compared to the sandbox  (CVE-2017-5426).
  • A non-existent chrome.manifest file will attempt to be loaded during startup from the primary installation directory. If a malicious user with local access puts chrome.manifest and other referenced files in this directory, they will be loaded and activated during startup. This could result in malicious software being added without consent or modification of referenced installed files (CVE-2017-5427).
  • An out of bounds read error occurs when parsing some HTTP digest authorization responses, resulting in information leakage through the reading of random memory containing matches to specifically set patterns (CVE-2017-5418).
  • If a malicious site repeatedly triggers a modal authentication prompt, eventually the browser UI will become non-responsive, requiring shutdown through the operating system. This is a denial of service (DOS) attack (CVE-2017-5419).
  • A javascript: url loaded by a malicious page can obfuscate its location by blanking the URL displayed in the addressbar, allowing for an attacker to spoof an existing page without the malicious page's address being displayed correctly (CVE-2017-5420).
  • Certain response codes in FTP connections can result in the use of uninitialized values for ports in FTP operations (CVE-2017-5405).
  • A malicious site could spoof the contents of the print preview window if popup windows are enabled, resulting in user confusion of what site is currently loaded (CVE-2017-5421).
  • If a malicious site uses the view-source: protocol in a series within a single hyperlink, it can trigger a non-exploitable browser crash when the hyperlink is selected. This was fixed by no longer making view-source: linkable (CVE-2017-5422).
  • Mozilla developers and community members reported memory safety bugs present in Firefox 51 and Firefox ESR 45.7. Some of these bugs showed evidence of memory corruption and we presume that with enough effort that some of these could be exploited to run arbitrary code (CVE-2017-5399, CVE-2017-5398).

Successful exploitation of the most severe of these vulnerabilities could allow for arbitrary code execution. Depending on the privileges associated with the user, an attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than those who operate with administrative user rights.

RECOMMENDATIONS:

We recommend the following actions be taken:

  • Apply appropriate updates provided by Mozilla to vulnerable systems, immediately after appropriate testing.
  • Run all software as a non-privileged user (one without administrative privileges) to diminish the effects of a successful attack.
  • Remind users not to visit un-trusted websites or follow links provided by unknown or un-trusted sources.
  • Inform and educate users regarding the threats posed by hypertext links contained in emails or attachments especially from un-trusted sources.
  • Apply the Principle of Least Privilege to all systems and services.

REFERENCES:
Mozilla:
https://www.mozilla.org/en-US/security/advisories/mfsa2017-05/

CVE:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5398
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5399
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5400
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5401
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5402
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5403
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5404
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5405
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5406
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5407
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5408
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5409
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5410
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5411
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5412
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5413
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5414
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5415
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5416
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5417
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5418
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5419
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5420
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5421
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5422
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5425
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5426
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5427