nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
Matthew Harm Bekkema 9973a266ab firefox-esr-60: 60.2.2 -> 60.3.0 [critical security fixes]
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/
2018-11-03 22:51:36 +11:00

185 lines
5.5 KiB
Nix

{ lib, callPackage, stdenv, fetchurl, fetchFromGitHub, fetchpatch, python3 }:
let
common = opts: callPackage (import ./common.nix opts) {};
nixpkgsPatches = [
./env_var_for_system_dir.patch
];
firefox60_aarch64_skia_patch = fetchpatch {
name = "aarch64-skia.patch";
url = https://src.fedoraproject.org/rpms/firefox/raw/8cff86d95da3190272d1beddd45b41de3148f8ef/f/build-aarch64-skia.patch;
sha256 = "11acb0ms4jrswp7268nm2p8g8l4lv8zc666a5bqjbb09x9k6b78k";
};
in
rec {
firefox = common rec {
pname = "firefox";
ffversion = "63.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "095nn50g72l4ihbv26qqqs2jg4ahnmd54vxvm7nxwrnkx901aji7pph6c91zfpf7df26ib1b0pqyir9vsac40sdxc8yrzm6d0lyl1m2";
};
patches = nixpkgsPatches ++ [
./no-buildconfig.patch
];
extraNativeBuildInputs = [ python3 ];
meta = {
description = "A web browser built from Firefox source tree";
homepage = http://www.mozilla.com/en-US/firefox/;
maintainers = with lib.maintainers; [ eelco ];
platforms = lib.platforms.unix;
license = lib.licenses.mpl20;
};
updateScript = callPackage ./update.nix {
attrPath = "firefox-unwrapped";
};
};
firefox-esr-52 = common rec {
pname = "firefox-esr";
ffversion = "52.9.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "bfca42668ca78a12a9fb56368f4aae5334b1f7a71966fbba4c32b9c5e6597aac79a6e340ac3966779d2d5563eb47c054ab33cc40bfb7306172138ccbd3adb2b9";
};
patches = nixpkgsPatches ++ [
# this one is actually an omnipresent bug
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
./fix-pa-context-connect-retval.patch
];
meta = firefox.meta // {
description = "A web browser built from Firefox Extended Support Release source tree";
knownVulnerabilities = [ "Support ended in August 2018." ];
};
updateScript = callPackage ./update.nix {
attrPath = "firefox-esr-52-unwrapped";
ffversionSuffix = "esr";
};
};
firefox-esr-60 = common rec {
pname = "firefox-esr";
ffversion = "60.3.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "36ipksq4408mfkyzna7kkjyg70nqx0hzg8zp34kmsynl42whvsqhsfl198c34shsx9zhfsag3hzx2ihhfnj8ph8b0xdgyrmi2ijbvbx";
};
patches = nixpkgsPatches ++ [
./no-buildconfig.patch
# this one is actually an omnipresent bug
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
./fix-pa-context-connect-retval.patch
] ++ lib.optional stdenv.isAarch64 firefox60_aarch64_skia_patch;
meta = firefox.meta // {
description = "A web browser built from Firefox Extended Support Release source tree";
};
updateScript = callPackage ./update.nix {
attrPath = "firefox-esr-60-unwrapped";
versionSuffix = "esr";
};
};
} // (let
tbcommon = args: common (args // {
pname = "tor-browser";
isTorBrowserLike = true;
unpackPhase = ''
# fetchFromGitHub produces ro sources, root dir gets a name that
# is too long for shebangs. fixing
cp -a $src tor-browser
chmod -R +w tor-browser
cd tor-browser
# set times for xpi archives
find . -exec touch -d'2010-01-01 00:00' {} \;
'';
patches = nixpkgsPatches;
meta = {
description = "A web browser built from TorBrowser source tree";
longDescription = ''
This is a version of TorBrowser with bundle-related patches
reverted.
I.e. it's a variant of Firefox with less fingerprinting and
some isolation features you can't get with any extensions.
Or, alternatively, a variant of TorBrowser that works like any
other UNIX program and doesn't expect you to run it from a
bundle.
It will use your default Firefox profile if you're not careful
even! Be careful!
It will clash with firefox binary if you install both. But it
should not be a problem because you should run browsers in
separate users/VMs anyway.
Create new profile by starting it as
$ firefox -ProfileManager
and then configure it to use your tor instance.
Or just use `tor-browser-bundle` package that packs this
`tor-browser` back into a sanely-built bundle.
'';
homepage = https://www.torproject.org/projects/torbrowser.html;
platforms = lib.platforms.linux;
license = lib.licenses.bsd3;
};
});
in rec {
tor-browser-7-5 = (tbcommon rec {
ffversion = "52.9.0esr";
tbversion = "7.5.6";
# FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
src = fetchFromGitHub {
owner = "SLNOS";
repo = "tor-browser";
# branch "tor-browser-52.9.0esr-7.5-2-slnos"
rev = "95bb92d552876a1f4260edf68fda5faa3eb36ad8";
sha256 = "1ykn3yg4s36g2cpzxbz7s995c33ij8kgyvghx38z4i8siaqxdddy";
};
}).override {
gtk3Support = false;
};
tor-browser-8-0 = tbcommon rec {
ffversion = "60.3.0esr";
tbversion = "8.0.3";
# FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
src = fetchFromGitHub {
owner = "SLNOS";
repo = "tor-browser";
# branch "tor-browser-60.3.0esr-8.0-1-slnos"
rev = "bd512ad9c40069adfc983f4f03dbd9d220cdf2f9";
sha256 = "1j349aqiqrf58zrx8pkqvh292w41v1vwr7x7dmd74hq4pi2iwpn8";
};
};
tor-browser = tor-browser-8-0;
})