-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Reference: CERT-EU Security Advisory 2012-0134 Title: Multiple vulnerabilities in Mozilla products Version history: 22.11.2012 Initial publication Summary ======= Several vulnerabilities have been detected in Mozilla products. Some of the ones reported below might already have been covered by previous CERT-EU advisories, but are mentioned for the sake of completeness. CVE-2012-5830, CVE-2012-5833, CVE-2012-5835, CVE-2012-5838, CVE-2012-4214, CVE-2012-4215, CVE-2012-4216, CVE-2012-4216, CVE-2012-5829, CVE-2012-5839, CVE-2012-5840, CVE-2012-4212, CVE-2012-4213, CVE-2012-4217, CVE-2012-4218, CVE-2012-4210, CVE-2012-4209, CVE-2012-5837, CVE-2012-4207, CVE-2012-5841, CVE-2012-4208, CVE-2012-4206, CVE-2012-4205, CVE-2012-4204, CVE-2012-4203, CVE-2012-5836, CVE-2012-4201, CVE-2012-4202, CVE-2012-5843, CVE-2012-5842 Vulnerable systems ================== Firefox before 17.0 Firefox ESR before 10.0.11 Thunderbird before 17.0 Thunderbird ESR before 10.0.11 SeaMonkey before 2.14 Original Details ================ a. Use-after-free, buffer overflow, and memory corruption issues found using Address [1] Security researcher miaubiz used the Address Sanitizer tool to discover a series critically rated of use-after-free, buffer overflow, and memory corruption issues in shipped software. These issues are potentially exploitable, allowing for remote code execution. We would also like to thank miaubiz for reporting two additional use-after-free and memory corruption issues introduced during Firefox development that were fixed before general release. The following issues were fixed in Firefox 17 and ESR 10.0.11: - use-after-free when loading html file on osx (CVE-2012-5830) - Mesa crashes on certain texImage2D calls involving level>0 (CVE-2012-5833) - integer overflow, invalid write w/webgl bufferdata (CVE-2012-5835) The following issues were fixed in Firefox 17: - crash in copyTexImage2D with image dimensions too large for given level (CVE-2012-5838) b. Use-after-free and buffer overflow issues found using Address Sanitizer [2] Security researcher Abhishek Arya (Inferno) of the Google Chrome Security Team discovered a series critically rated of use-after-free and buffer overflow issues using the Address Sanitizer tool in shipped software. These issues are potentially exploitable, allowing for remote code execution. We would also like to thank Abhishek for reporting five additional use-after-free, out of bounds read, and buffer overflow flaws introduced during Firefox development that were fixed before general release. The following issues were fixed in Firefox 17 and ESR 10.0.11: - Heap-use-after-free in nsTextEditorState::PrepareEditor (CVE-2012-4214) - Heap-use-after-free in nsPlaintextEditor::FireClipboardEvent (CVE-2012-4215) - Heap-use-after-free in gfxFont::GetFontEntry (CVE-2012-4216) - Heap-buffer-overflow in nsWindow::OnExposeEvent (CVE-2012-5829) - heap-buffer-overflow in gfxShapedWord::CompressedGlyph::IsClusterStart - CVE-2012-5839 - Heap-use-after-free in nsTextEditorState::PrepareEditor (CVE-2012-5840) The following issues were fixed in Firefox 17: - Heap-use-after-free in XPCWrappedNative::Mark (CVE-2012-4212) - Heap-use-after-free in nsEditor::FindNextLeafNode (CVE-2012-4213) - Heap-use-after-free in nsViewManager::ProcessPendingUpdates (CVE-2012-4217) - Heap-use-after-free BuildTextRunsScanner::BreakSink::SetBreaks (CVE-2012-4218) c. CSS and HTML injection through Style Inspector [3] Security researcher Mariusz Mlynski reported that when a maliciously crafted stylesheet is inspected in the Style Inspector, HTML and CSS can run in a chrome privileged context without being properly sanitized first. This can lead to arbitrary code execution. Arbitrary code execution from Style Inspector (CVE-2012-4210) d. Frames can shadow top.location [4] Security researcher Mariusz Mlynski reported that the location property can be accessed by binary plugins through top.location with a frame whose name attribute's value is set to "top". This can allow for possible cross-site scripting (XSS) attacks through plugins. Frames can shadow |top| (CVE-2012-4209) e. Script entered into Developer Toolbar runs with chrome privileges [5] Security researcher Masato Kinugawa reported that when script is entered into the Developer Toolbar, it runs in a chrome privileged context. This allows for arbitrary code execution or cross-site scripting (XSS) if a user can be convinced to paste malicious code into the Developer Toolbar. XSS in Web Developer Toolbar's chrome privilege page (CVE-2012-5837) f. Improper character decoding in HZ-GB-2312 charset [6] Security researcher Masato Kinugawa found when HZ-GB-2312 charset encoding is used for text, the "~" character will destroy another character near the chunk delimiter. This can lead to a cross-site scripting (XSS) attack in pages encoded in HZ-GB-2312. "~" eats a char near chunk delimiter in HZ-GB-2312 encoding (CVE-2012-4207) g. Improper security filtering for cross-origin wrappers [7] Mozilla developer Bobby Holley reported that security wrappers filter at the time of property access, but once a function is returned, the caller can use this function without further security checks. This affects cross-origin wrappers, allowing for write actions on objects when only read actions should be properly allowed. This can lead to cross-site scripting (XSS) attacks. Filtering wrapper should filter setters when returning a property descriptor (CVE-2012-5841) h. XrayWrappers exposes chrome-only properties when not in chrome compartment [8] Mozilla developer Peter Van der Beken discovered that same-origin XrayWrappers expose chrome-only properties even when not in a chrome compartment. This can allow web content to get properties of DOM objects that are intended to be chrome-only. Xrays for new DOM bindings need to filter properties based on their compartment (CVE-2012-4208) i. Firefox installer DLL hijacking [9] Security researcher Robert Kugler reported that when a specifically named DLL file on a Windows computer is placed in the default downloads directory with the Firefox installer, the Firefox installer will load this DLL when it is launched. In circumstances where the installer is run by an administrator privileged account, this allows for the downloaded DLL file to be run with administrator privileges. This can lead to arbitrary code execution from a privileged account. DLL Hijacking - Firefox installer (CVE-2012-4206) j. XMLHttpRequest inherits incorrect principal within sandbox [10] Mozilla developer Gabor Krizsanits discovered that XMLHttpRequest objects created within sandboxes have the system principal instead of the sandbox principal. This can lead to cross-site request forgery (CSRF) or information theft via an add-on running untrusted code in a sandbox. XHR created from sandboxes end up having system principal instead of principal of the sandbox (CVE-2012-4205) k.Memory corruption in str_unescape [11] Security researcher Scott Bell of Security-Assessment.com used the Address Sanitizer tool to discover a memory corruption in str_unescape in the Javascript engine. This could potentially lead to arbitrary code execution. Crash in str_unescape (CVE-2012-4204) l. Javascript: URLs run in privileged context on New Tab page [12] Security researcher kakzz.ng@gmail.com reported that if a javascript: URL is selected from the list of Firefox "new tab" page, the script will inherit the privileges of the privileged "new tab" page. This allows for the execution of locally installed programs if a user can be convinced to save a bookmark of a malicious javascript: URL. Bookmarklets on the new tab page are able to run privileged javascript (CVE-2012-4203) m. Crash when combining SVG text on path with CSS [13] Security researcher Jonathan Stephens discovered that combining SVG text on a path with the setting of CSS properties could lead to a potentially exploitable crash. SVG text on path + setting a style crashes Firefox (CVE-2012-5836) n. evalInSanbox location context incorrectly applied [14] Mozilla security researcher moz_bug_r_a4 reported that if code executed by the evalInSandbox function sets location.href, it can get the wrong subject principal for the URL check, ignoring the sandbox's Javascript context and gaining the context of evalInSandbox object. This can lead to malicious web content being able to perform a cross-site scripting (XSS) attack or stealing a copy of a local file if the user has installed an add-on vulnerable to this attack. Problem with evalInSandbox and location (CVE-2012-4201) o. Buffer overflow while rendering GIF images [15] Security researcher Atte Kettunen from OUSPG used the Address Sanitizer tool to discover a buffer overflow while rendering GIF format images. This issue is potentially exploitable and could lead to arbitrary code execution. ASAN: Heap-buffer-overflow at image::RasterImage::DrawFrameTo (CVE-2012-4202) p. Miscellaneous memory safety hazards (rv:17.0/ rv:10.0.11) [16] Mozilla developers identified and fixed several memory safety bugs in the browser engine used in Firefox and other Mozilla-based products. Some of these bugs showed evidence of memory corruption under certain circumstances, and we presume that with enough effort at least some of these could be exploited to run arbitrary code. Gary Kwong, Jesse Ruderman, Christian Holler, Bob Clary, Kyle Huey, Ed Morley, Chris Lord, Boris Zbarsky, Julian Seward, and Bill McCloskey reported memory safety problems and crashes that affect Firefox 16. Memory safety bugs fixed in Firefox 17 (CVE-2012-5843) Jesse Ruderman, Andrew McCreight, Bob Clary, and Kyle Huey reported memory safety problems and crashes that affect Firefox ESR 10 and Firefox 16. Memory safety bugs fixed in Firefox ESR 10.0.11 and Firefox 17 (CVE-2012-5842) What can you do? ================ The reported issues have been fixed in Firefox 17.0 Firefox ESR 10.0.11 Thunderbird 17.0 Thunderbird ESR 10.0.11 SeaMonkey 2.14 What to tell your users? ======================== N/A More information ================ [1] http://www.mozilla.org/security/announce/2012/mfsa2012-106.html [2] http://www.mozilla.org/security/announce/2012/mfsa2012-105.html [3] http://www.mozilla.org/security/announce/2012/mfsa2012-104.html [4] http://www.mozilla.org/security/announce/2012/mfsa2012-103.html [5] http://www.mozilla.org/security/announce/2012/mfsa2012-102.html [6] http://www.mozilla.org/security/announce/2012/mfsa2012-101.html [7] http://www.mozilla.org/security/announce/2012/mfsa2012-100.html [8] http://www.mozilla.org/security/announce/2012/mfsa2012-99.html [9] http://www.mozilla.org/security/announce/2012/mfsa2012-98.html [10] http://www.mozilla.org/security/announce/2012/mfsa2012-97.html [11] http://www.mozilla.org/security/announce/2012/mfsa2012-96.html [12] http://www.mozilla.org/security/announce/2012/mfsa2012-95.html [13] http://www.mozilla.org/security/announce/2012/mfsa2012-94.html [14] http://www.mozilla.org/security/announce/2012/mfsa2012-93.html [15] http://www.mozilla.org/security/announce/2012/mfsa2012-92.html [16] http://www.mozilla.org/security/announce/2012/mfsa2012-91.html [17] http://cve.mitre.org/ Best regards, CERT-EU Pre-configuration Team (http://cert.europa.eu) Phone: +32.2.2990005 / e-mail: cert-eu@ec.europa.eu PGP KeyID 0x46AC4383 FP: 9011 6BE9 D642 DD93 8348 DAFA 27A4 06CA 46AC 4383 Privacy Statement: http://cert.europa.eu/cert/plainedition/en/cert_privacy.html -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAEBAgAGBQJQrgTzAAoJEPpzpNLI8SVoK3QP/2Na8dx4kEVhMbh1PdRxG/xM nL1v/9NgCjNXuuzPOSQxUTAy8ekK+4EjHUh0aAdJxqlvJBHzO3AVaS5yiS9xIjAa EAs7VcwbHZXsAQzSlIRDKm/3TM+BoYMfwrj0F3ag8g03qmGkZuZoq9PiaF722o66 VAxYQStSYtL020suLW90vi9IEtyoSDrySPKIOjJ3kSaEUYb5Azns/0QUbIYzD2Cd ZWrazmyFH9WFqz0ZiXoT9jO7F1YouiL+miZeKEvenywVKhlMf1pgKNwaCxHI0wZM No29+es+i81Q1DDjFvXQBCZGGeyhLrekOLn3XPFc4fDiQBUeNWPldxTZKc29JIFx toXwwObDE+L3dkQ+OWRZayFB9+yqUYGXMDRFXSIms/7vEKO+rWmxdBKhhNp/hLq4 epIp/rB/Q/Dv9w7jfiQxF9I4Zuy34cYr1Po32hrb/LxppBemaCPXJ/uUuY1H3kHq hlxmgSbe21usxCss0/N6S3RHg5qfoh/xYAewxi3wLp6xoSwhyVBSq5UjeC8r9JAK OEGtHz/KVxFFcQ/UhygckaMWjMvuOoH2RBnJzD2dnqYB30sSVAvVpiHXK4fKqH2f BxjpU9vch4k6ElT0PIljl8X/9pMi/EF3nB2EdYREJWgejhNjIq90hg8rq7f+LQrw Nx614R6XNN6iMS/5B/GA =0dBE -----END PGP SIGNATURE-----