Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

firefox-esr-60: 60.2.2 -> 60.3.0 [critical security fixes] #49690

Merged
merged 3 commits into from Nov 7, 2018

Conversation

mat8913
Copy link
Contributor

@mat8913 mat8913 commented Nov 3, 2018

Motivation for this change

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

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Fits CONTRIBUTING.md.

This update bumps the package to the latest stable version containing a
few security fixes:

- CVE-2018-12392: Crash with nested event loops
  When manipulating user events in nested loops while opening a document
  through script, it is possible to trigger a potentially exploitable
  crash due to poor event handling.

- CVE-2018-12393: Integer overflow during Unicode conversion while loading JavaScript
  A potential vulnerability was found in 32-bit builds where an integer
  overflow during the conversion of scripts to an internal UTF-16
  representation could result in allocating a buffer too small for the
  conversion. This leads to a possible out-of-bounds write.
  Note: 64-bit builds are not vulnerable to this issue.

- CVE-2018-12395: WebExtension bypass of domain restrictions through header rewriting
  By rewriting the Host request headers using the webRequest API, a
  WebExtension can bypass domain restrictions through domain fronting.
  This would allow access to domains that share a host that are
  otherwise restricted.

- CVE-2018-12396: WebExtension content scripts can execute in disallowed contexts
  A vulnerability where a WebExtension can run content scripts in
  disallowed contexts following navigation or other events. This allows
  for potential privilege escalation by the WebExtension on sites where
  content scripts should not be run.

- CVE-2018-12397: Missing warning prompt when WebExtension requests local file access
  A WebExtension can request access to local files without the warning
  prompt stating that the extension will "Access your data for all
  websites" being displayed to the user. This allows extensions to run
  content scripts in local pages without permission warnings when a
  local file is opened.

- CVE-2018-12389: Memory safety bugs fixed in Firefox ESR 60.3
  Mozilla developers and community members Daniel Veditz and Philipp
  reported memory safety bugs present in Firefox ESR 60.2. 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-2018-12390: Memory safety bugs fixed in Firefox 63 and Firefox ESR 60.3
  Mozilla developers and community members Christian Holler, Bob Owen,
  Boris Zbarsky, Calixte Denizet, Jason Kratzer, Jed Davis, Taegeon Lee,
  Philipp, Ronald Crane, Raul Gurzau, Gary Kwong, Tyson Smith, Raymond
  Forbes, and Bogdan Tara reported memory safety bugs present in Firefox
  62 and Firefox ESR 60.2. 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.

Source: https://www.mozilla.org/en-US/security/advisories/mfsa2018-27/
@oxij
Copy link
Member

oxij commented Nov 7, 2018

@GrahamcOfBorg build firefoxPackages.firefox-esr

/cc @andir

@GrahamcOfBorg
Copy link

No attempt on aarch64-linux (full log)

The following builds were skipped because they don't evaluate on aarch64-linux: firefoxPackages.firefox-esr

Partial log (click to expand)

Cannot nix-instantiate `firefoxPackages.firefox-esr' because:
error: attribute 'firefox-esr' in selection path 'firefoxPackages.firefox-esr' not found

@GrahamcOfBorg
Copy link

No attempt on x86_64-linux (full log)

The following builds were skipped because they don't evaluate on x86_64-linux: firefoxPackages.firefox-esr

Partial log (click to expand)

Cannot nix-instantiate `firefoxPackages.firefox-esr' because:
error: attribute 'firefox-esr' in selection path 'firefoxPackages.firefox-esr' not found

@andir
Copy link
Member

andir commented Nov 7, 2018

@GrahamcOfBorg build firefox-esr-60

@GrahamcOfBorg
Copy link

Failure on x86_64-darwin (full log)

Attempted: firefox-esr-60

Partial log (click to expand)

 0:07.26     errread, errwrite)
 0:07.26   File "/nix/store/c6mnc84yva1wa85nzjfha6mxfsk6qbg7-python-2.7.15/lib/python2.7/subprocess.py", line 1047, in _execute_child
 0:07.26     raise child_exception
 0:07.26 OSError: [Errno 2] No such file or directory
 0:07.29 *** Fix above errors and then restart with\
 0:07.29                "/nix/store/f5aw0jl41r3nydav2mprvd2zyb76hg92-gnumake-4.2.1/bin/make -f client.mk build"
 0:07.29 make: *** [client.mk:149: configure] Error 1
builder for '/nix/store/xy2q351kpvrvrb62736bm81754fi6v74-firefox-esr-unwrapped-60.3.0esr.drv' failed with exit code 2
cannot build derivation '/nix/store/x5dw982sw8mgfkwdid9if2cbc6j8hgwm-Firefox-60.3.0esr.drv': 1 dependencies couldn't be built
error: build of '/nix/store/x5dw982sw8mgfkwdid9if2cbc6j8hgwm-Firefox-60.3.0esr.drv' failed

@GrahamcOfBorg
Copy link

Timed out, unknown build status on x86_64-linux (full log)

Attempted: firefox-esr-60

Partial log (click to expand)

rm -f libdom_clients_api.a
/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/_virtualenv/bin/python /build/firefox-60.3.0/config/expandlibs_gen.py -o libdom_clients_api.a.desc Unified_cpp_dom_clients_api0.o
make[3]: Leaving directory '/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dom/clients/api'
make[3]: Entering directory '/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dom/commandhandler'
mkdir -p '.deps/'
/nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0/bin/g++ -o Unified_cpp_dom_commandhandler0.o -c -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dist/stl_wrappers -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dist/system_wrappers -include /build/firefox-60.3.0/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/build/firefox-60.3.0/dom/commandhandler -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dom/commandhandler -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dist/include -I/nix/store/bwgz69gc4rg6qslb30hbbw33ipmf1zcn-nspr-4.20-dev/include -I/nix/store/iyiivh80rga215nzmwsmakz1riam5ddk-nss-3.39-dev/include/nss -I/nix/store/lmv7cpljbqzbn0mxfpnk2knsm4c6bq12-pixman-0.34.0/include/pixman-1 -fPIC -DMOZILLA_CLIENT -include /build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/mozilla-config.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -I/nix/store/27pkx59vp8l32k8xq30fz4vbq3hspc59-icu4c-59.1-dev/include -g -freorder-blocks -O2 -fomit-frame-pointer  -MD -MP -MF .deps/Unified_cpp_dom_commandhandler0.o.pp   /build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dom/commandhandler/Unified_cpp_dom_commandhandler0.cpp
/nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0/bin/g++ -o Unified_cpp_dom_cache1.o -c -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dist/stl_wrappers -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dist/system_wrappers -include /build/firefox-60.3.0/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/build/firefox-60.3.0/dom/cache -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dom/cache -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/ipc/ipdl/_ipdlheaders -I/build/firefox-60.3.0/ipc/chromium/src -I/build/firefox-60.3.0/ipc/glue -I/build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dist/include -I/nix/store/bwgz69gc4rg6qslb30hbbw33ipmf1zcn-nspr-4.20-dev/include -I/nix/store/iyiivh80rga215nzmwsmakz1riam5ddk-nss-3.39-dev/include/nss -I/nix/store/lmv7cpljbqzbn0mxfpnk2knsm4c6bq12-pixman-0.34.0/include/pixman-1 -fPIC -DMOZILLA_CLIENT -include /build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/mozilla-config.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -I/nix/store/27pkx59vp8l32k8xq30fz4vbq3hspc59-icu4c-59.1-dev/include -g -freorder-blocks -O2 -fomit-frame-pointer -Wno-error=shadow  -MD -MP -MF .deps/Unified_cpp_dom_cache1.o.pp   /build/firefox-60.3.0/obj-x86_64-pc-linux-gnu/dom/cache/Unified_cpp_dom_cache1.cpp
building of '/nix/store/56cw79ck2lp0dvx1gfq64gwp2cklnww2-firefox-esr-unwrapped-60.3.0esr.drv' timed out after 1800 seconds
cannot build derivation '/nix/store/bwnjsk1igq4l860p0jg7y6bly95qj9zr-firefox-60.3.0esr.drv': 1 dependencies couldn't be built
error: build of '/nix/store/bwnjsk1igq4l860p0jg7y6bly95qj9zr-firefox-60.3.0esr.drv' failed

@andir
Copy link
Member

andir commented Nov 7, 2018

It looks fine. Compiling this right now. I must have forgotten to push that commit to master since it is on 18.09 and 18.03 :/

@GrahamcOfBorg
Copy link

Failure on aarch64-linux (full log)

Attempted: firefox-esr-60

Partial log (click to expand)

Hunk #1 succeeded at 581 (offset 108 lines).
Hunk #2 succeeded at 596 (offset 108 lines).
applying patch /nix/store/hbznxg0w5nb08wdy9knvzlghd4l1im1h-aarch64-skia.patch
patching file gfx/skia/skia/src/jumper/SkJumper_stages.cpp
Hunk #1 FAILED at 666.
Hunk #2 FAILED at 686.
2 out of 2 hunks FAILED -- saving rejects to file gfx/skia/skia/src/jumper/SkJumper_stages.cpp.rej
builder for '/nix/store/df5y20ggxsgqwvcfxb68zc7zx846gsx3-firefox-esr-unwrapped-60.3.0esr.drv' failed with exit code 1
cannot build derivation '/nix/store/z3fclj5wga5mbkn4b7i728qiyl5n3792-firefox-60.3.0esr.drv': 1 dependencies couldn't be built
error: build of '/nix/store/z3fclj5wga5mbkn4b7i728qiyl5n3792-firefox-60.3.0esr.drv' failed

@andir
Copy link
Member

andir commented Nov 7, 2018

x86_64-linux seems fine, i686-linux is still building. I am dropping the skia patch from aarch64 that should fix the build.

@andir andir force-pushed the unstable_firefox-esr-60.3.0 branch from cc387f7 to c8d4508 Compare November 7, 2018 15:47
With the upgrade to firefox 62 clang flags are now required on i686.

(cherry picked from commit acf4a4e)
@andir andir merged commit faf57d2 into NixOS:master Nov 7, 2018
@mat8913 mat8913 deleted the unstable_firefox-esr-60.3.0 branch November 9, 2018 03:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants