Multiple Vulnerabilities in Mozilla Firefox Could Allow for Arbitrary Code Execution

ITS Advisory Number: 
2018-007
Date(s) Issued: 
Wednesday, January 24, 2018
Subject: 
Multiple Vulnerabilities in Mozilla Firefox Could Allow for Arbitrary Code Execution
Overview: 

Multiple vulnerabilities have been discovered in Mozilla Firefox and Firefox Extended Support Release (ESR), the most severe of 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.

Systems Affected: 
  • Mozilla Firefox prior to 58
  • Mozilla Firefox ESR 52.6
RISK
GOVERNMENT
Large and medium government entities: 
High
Small government entities: 
High
BUSINESS
Large and medium business entities: 
High
Small business entities: 
High
Home Users: 
Medium
Description: 

Multiple vulnerabilities have been discovered in Mozilla Firefox and Firefox Extended Support Release (ESR), the most severe of which could allow for arbitrary code execution. Details of these vulnerabilities are as follows:

 

  • A Blob URL can violate origin attribute segregation, allowing it to be accessed from a private browsing tab and for data to be passed between the private browsing tab and a normal tab. This could allow for the leaking of private information specific to the private browsing context. This issue is mitigated by the requirement that the user enter the Blob URL manually in order for the access violation to occur. (CVE-2018-5108)
  • A heap buffer overflow vulnerability may occur in WebAssembly during Memory/Table resizing, resulting in a potentially exploitable crash. (CVE-2018-5093)
  • A heap buffer overflow vulnerability may occur in WebAssembly when shrinkElements is called followed by garbage collection on memory that is now uninitialized. This results in a potentially exploitable crash. (CVE-2018-5094)
  • An audio capture session can be started under an incorrect origin from the site making the capture request. Users are still prompted to allow the request but the prompt can display the wrong origin, leading to user confusion about which site is making the request to capture an audio stream. (CVE-2018-5109)
  • An integer overflow vulnerability in the Skia library when allocating memory for edge builders on some systems with at least 8 GB of RAM. This results in the use of uninitialized memory, resulting in a potentially exploitable crash. (CVE-2018-5095)
  • A potential integer overflow in the DoCrypt function of WebCrypto was identified. If a means was found of exploiting it, it could result in an out-of-bounds write. (CVE-2018-5122)
  • A use-after-free vulnerability can occur during font face manipulation when a font face is freed while still in use, resulting in a potentially exploitable crash. (CVE-2018-5104)
  • A use-after-free vulnerability can occur during mouse event handling due to issues with multi-process support. This results in a potentially exploitable crash. (CVE-2018-5103)
  • A use-after-free vulnerability can occur during WebRTC connections when interacting with the DTMF timers. This results in a potentially exploitable crash. (CVE-2018-5091)
  • A use-after-free vulnerability can occur during XSL transformations when the source document for the transformation is manipulated by script content during the transformation. This results in a potentially exploitable crash. (CVE-2018-5097)
  • A use-after-free vulnerability can occur when arguments passed to the IsPotentiallyScrollable function are freed while still in use by scripts. This results in a potentially exploitable crash. (CVE-2018-5100)
  • A use-after-free vulnerability can occur when form input elements, focus, and selections are manipulated by script content. This results in a potentially exploitable crash. (CVE-2018-5098)
  • A use-after-free vulnerability can occur when manipulating floating first-letter style elements, resulting in a potentially exploitable crash. (CVE-2018-5101)
  • A use-after-free vulnerability can occur when manipulating HTML media elements with media streams, resulting in a potentially exploitable crash. (CVE-2018-5102)
  • A use-after-free vulnerability can occur when the thread for a Web Worker is freed from memory prematurely instead of from memory in the main thread while cancelling fetch operations. (CVE-2018-5092)
  • A use-after-free vulnerability can occur when the widget listener is holding strong references to browser objects that have previously been freed, resulting in a potentially exploitable crash when these references are used. (CVE-2018-5099)
  • A use-after-free vulnerability can occur while editing events in form elements on a page, resulting in a potentially exploitable crash. (CVE-2018-5096)
  • Development Tools panels of an extension are required to load URLs for the panels as relative URLs from the extension manifest file but this requirement was not enforced in all instances. This could allow the development tools panel for the extension to load a URL that it should not be able to access, including potentially privileged pages. (CVE-2018-5112)
  • Memory safety bugs present, which showed evidence of memory corruption and with enough effort some of the bugs could be exploited to run arbitrary code. (CVE-2018-5090, CVE-2018-5089)
  • If an existing cookie is changed to be HttpOnly while a document is open, the original value remains accessible through script until that document is closed. Network requests correctly use the changed HttpOnly cookie. (CVE-2018-5114)
  • If an HTTP authentication prompt is triggered by a background network request from a page or extension, it is displayed over the currently loaded foreground page. Although the prompt contains the real domain making the request, this can result in user confusion about the originating site of the authentication request and may cause users to mistakenly send private credential information to a third party site. (CVE-2018-5115)
  • If cursor visibility is toggled by script using from 'none' to an image and back through script, the cursor will be rendered temporarily invisible within Firefox. Note: This vulnerability only affects OS X. Other operating systems are not affected. (CVE-2018-5110)
  • If right-to-left text is used in the addressbar with left-to-right alignment, it is possible in some circumstances to scroll this text to spoof the displayed URL. This issue could result in the wrong URL being displayed as a location, which can mislead users to believe they are on a different site than the one loaded. (CVE-2018-5117)
  • Low descenders on some Tibetan characters in several fonts on OS X are clipped when rendered in the addressbar. When used as part of an Internationalized Domain Name (IDN) this can be used for domain name spoofing attacks. Note: This attack only affects OS X operating systems. Other operating systems are unaffected. (CVE-2018-5121)
  • Style editor traffic in the Developer Tools can be routed through a service worker hosted on a third party website if a user selects error links when these tools are open. This can allow style editor information used within Developer Tools to leak cross-origin. (CVE-2018-5106)
  • The browser.identity.launchWebAuthFlow function of WebExtensions is only allowed to load content over https: but this requirement was not properly enforced. This can potentially allow privileged pages to be loaded by the extension. (CVE-2018-5113)
  • The printing process can bypass local access protections to read files available through symlinks, bypassing local file restrictions. The printing process requires files in a specific format so arbitrary data cannot be read but it is possible that some local file information could be exposed. (CVE-2018-5107)
  • The reader view will display cross-origin content when CORS headers are set to prohibit the loading of cross-origin content by a site. This could allow access to content that should be restricted in reader view. (CVE-2018-5119)
  • The screenshot images displayed in the Activity Stream page displayed when a new tab is opened is created from the meta tags of websites. An issue was discovered where the page could attempt to create these images through file: URLs from the local file system. This loading is blocked by the sandbox but could expose local data if combined with another attack that escapes sandbox protections. (CVE-2018-5118)
  • WebExtensions can bypass user prompts to first save and then open an arbitrarily downloaded file. This can result in an executable file running with local user privileges without explicit user consent. (CVE-2018-5105)
  • WebExtensions with the ActiveTab permission are able to access frames hosted within the active tab even if the frames are cross-origin. Malicious extensions can inject frames from arbitrary origins into the loaded page and then interact with them, bypassing same-origin user expectations with this permission. (CVE-2018-5116)
  • When the text of a specially formatted URL is dragged to the addressbar from page content, the displayed URL can be spoofed to show a different site than the one loaded. This allows for phishing attacks where a malicious page can spoof the identify of another site. (CVE-2018-5111)

 

Successful exploitation of the most severe of these vulnerabilities could allow for arbitrary code execution. Depending on the privileges associated with the user group  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.

Actions: 
  • After appropriate testing, immediately install the updates provided by Mozilla to vulnerable systems.
  • 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/mfsa2018-02/

https://www.mozilla.org/en-US/security/advisories/mfsa2018-03/

 

CVE:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5089

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5090

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5091

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5092

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5093

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5094

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5095

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5096

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5097

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5098

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5099

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5100

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5101

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5102

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5103

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5104

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5105

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5106

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5107

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5108

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5109

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5110

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5111

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5112

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5113

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5114

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5115

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5116

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5117

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5118

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5119

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5121

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5122