But I personally would feel far more secure if there was a firefox-lite where no sensitive stuff (access camera, share screen) were included to start with. And I don't mean turned off by default, I want it removed at compile time.
But I personally would feel far more secure if there was a firefox-lite where no sensitive stuff (access camera, share screen) were included to start with. And I don't mean turned off by default, I want it removed at compile time.
They aren't suggesting using compile flags requires code changes...
Then you make a custom mozconfig file to disable or enable features, or to add your own extensions (ie: windows): https://developer.mozilla.org/en-US/docs/Mozilla/Developer_g...
ac_add_options --disable-activex
ac_add_options --disable-activex-scripting
ac_add_options --disable-installer
ac_add_options --disable-crashreporter
You can further abstract this with a mozconfig wrapper https://github.com/ahal/mozconfigwrapperBut I agree, I can't find any documentation what exactly every feature is and why you would not want to disable/enable them. The Chromium build process is much more straight forward, or you could just use 3rd party sandbox and regular release FF.
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_g...
On Linux I clone the source and run "./mach build".
sudo apt update && sudo apt install python build-essential -y
wget -O bootstrap.py https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py && python bootstrap.py
cd mozilla-unified/
./mach buildhttps://developer.mozilla.org/en-US/docs/Mozilla/Developer_g...
mozilla-central is just such a big repository that it pushes the usual cloning process to its limits.
The Rust dependency was added to Firefox very recently, so I guess with the holidays it hasn't made it into the bootstrap script and docs yet.
I have no use for WebRTC, so I would not install the addon/plugin. You may want it, so you would. When there was a problem with Mozilla's implementation, I wouldn't have to care, and neither would anyone else who didn't use or want it. Only those that chose to have the functionality would need to be concerned, and even then it could be updated without a full browser update.
So if your threat model includes targeted attacks, where an attacker might invest some (even a small) level of effort to find a 0-day vulnerability, I don't think I'd use it.
So you probably don't need to do effort to find a 0-day, just browse old Mozilla CVE disclosures.
edit: I'd reply to your response below normally but apparently I don't get to reply to any comments on HN anymore. The reply button has disappeared. When I log out of my 5 year old/458 karma account it's back. I guess my opinion isn't wanted here.
You have a good point there. I bet a least a couple of those are present. But you've also completely missed my point. When looking through the FF known vuln list the vast majority are for things like WebRTC, WebGl, and other attack surfaces that Pale Moon intentionally avoids.
This isn't FUD. You can literally go read the list:
https://www.mozilla.org/en-US/security/known-vulnerabilities...
I count over 174 fixed vulnerabilities and stopped at version 48. Yes, some of these might not apply to Pale Moon because they're new vulnerabilities or it has the relevant feature disabled. You think anyone did the work to go through them all? Let alone backport the ones that are relevant?
Mozilla used to do this work for Pale Moon by virtue of still backporting the most important ones (i.e. not all) to ESR38. Not any more. Good luck!
the vast majority are for things like WebRTC, WebGl, and other attack surfaces that Pale Moon intentionally avoids
Pale Moon supports WebGL nowadays. It's needed for a few things like Google Maps to not suck. Of course, the implementation is outdated, which is perhaps what made you think it's not there...
And I'm betting most of the time they succeed. There may be a few weird ones with edge cases that they've screwed up though and some subset of the vulnerability is still possible.
I have pointed out many of these and argued with Pale Moon devs about it. "Moon Child" believes they don't need to apply patches if they can't replicate the PoC from Mozilla's bugzilla.
These are things that are obviously vulnerable and need to be fixed (such as missing bound checks in the XML parser).
If someone ever cared enough to target Pale Moon users they would have an absolute field day with all the known Firefox vulnerabilities they could use.
HN delays the visibility of the reply link on threads that seem to be getting too deep too quickly.
The real reason is that they are based off of an old ESR and their code wouldn't be able to inter-operate with anything else. Aside from the issue that they're not getting security patches for it, either...
The recommendation to use an external PDF reader is also not quite something I can stand behind. (Unless that external reader is Chrome...)
As for external PDF readers I'd argue that avoiding the push for integrating or redeveloping more and more external applications into a browser is very sane.
This is a bit like saying "Firefox 4 has HTML5". The WebRTC stack in Firefox evolved significantly from Firefox 38 to 50, as did the WebRTC standards themselves. That's why I pointed to interoperability issues.
You're going to have to dig up a browser whose authors don't subscribe to this vision, or browsers that may intend to do this down the road but haven't caught up yet. For the time being, out of graphical browsers, Dillo and Netsurf are in this category.
You can test it here: https://browserleaks.com/webrtc
I tried that test page with the mentioned setting 1) enabled and 2) disabled. I did not see my local IP on 1), I did get see it reported with 2) - so it seems the block works. NOTE: Whether uBlock Origin was enabled for the specific page did not matter, the WebRTC block setting seems to be global and independent of whether the extension blocks anything else on the site.
Many features can be turned off globally in about:config in a way that will not result in an opt-in prompt and will also reduce the javascript API surface.
Is that not good enough?