Remove built-in certificate requirement for addon updates (no security updates for corporate or AntiVirus users)
Categories
(Toolkit :: Add-ons Manager, defect, P2)
Tracking
()
People
(Reporter: chuck, Assigned: mixedpuppy)
References
(Depends on 1 open bug, Blocks 1 open bug, )
Details
(Keywords: sec-moderate, Whiteboard: [STR in comment 67][adv-main78+][adv-esr68.10+])
Attachments
(5 files, 2 obsolete files)
228.95 KB,
image/png
|
Details | |
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
RyanVM
:
approval-mozilla-esr68+
|
Details | Review |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-esr68+
RyanVM
:
approval-mozilla-esr78+
|
Details | Review |
357 bytes,
text/plain
|
Details |
Updated•8 years ago
|
Comment 1•8 years ago
|
||
Comment 2•8 years ago
|
||
Comment 3•8 years ago
|
||
Comment 4•8 years ago
|
||
Comment 5•8 years ago
|
||
Comment 6•8 years ago
|
||
Comment 7•8 years ago
|
||
Updated•8 years ago
|
Comment 8•8 years ago
|
||
Comment 9•8 years ago
|
||
Comment 10•8 years ago
|
||
Comment 11•8 years ago
|
||
Comment 12•8 years ago
|
||
Updated•8 years ago
|
Comment 13•8 years ago
|
||
Comment 14•8 years ago
|
||
Comment 15•8 years ago
|
||
Comment 16•8 years ago
|
||
Comment 17•8 years ago
|
||
Comment 19•8 years ago
|
||
Comment 20•8 years ago
|
||
Comment 21•8 years ago
|
||
Comment 22•8 years ago
|
||
Comment 23•8 years ago
|
||
Comment 24•8 years ago
|
||
Comment 25•8 years ago
|
||
Comment 26•8 years ago
|
||
Comment 27•8 years ago
|
||
Comment 28•6 years ago
|
||
Comment 29•6 years ago
|
||
Comment 30•6 years ago
|
||
Comment 31•6 years ago
|
||
Comment 32•6 years ago
|
||
Comment 33•6 years ago
|
||
Comment 35•6 years ago
|
||
Comment 36•6 years ago
|
||
Comment 37•6 years ago
|
||
Comment 38•6 years ago
|
||
Comment 39•6 years ago
|
||
Comment 40•6 years ago
|
||
Comment 41•6 years ago
|
||
Comment 42•6 years ago
|
||
Comment 43•6 years ago
|
||
Comment 45•5 years ago
|
||
hi, I want to know what progress this bug has made recently. If we can’t stop man-in-the-middle for the time being, can we add a prompt like the https web page error to inform the user what happened?
Comment 46•5 years ago
|
||
Please consider retagging this as the critical security vulnerability this really is.
SSL interception is not a rare configuration in this day and age.
The current configuration is Firefox is able to update itself without issue, however all addins updates, including critical security updates, are disabled by this bug.
Worse than this it does NOT give an error. It simply says No updates available, which is wrong.
To make matters worse for end users there is no obvious error that communication isn't working unless the user notices:
hey! Why are my addins years out of date!?
Comment 47•5 years ago
|
||
Short term fix -- set the following prefs to false
(you will need to add them in about:config
):
extensions.update.requireBuiltInCerts
extensions.install.requireBuiltInCerts
The first is the main one. The second is for web pages that use InstallTrigger to install extensions (which isn't how https://addons.mozilla.org does it anymore).
Since enterprise users are extremely likely to have a corporate MITM security device this is important to fix in ESR-78. Although a better fix is to remove this code, for ESR we could settle for simply setting the prefs.
Comment 48•5 years ago
|
||
Fx78 goes to RC next week, so it's very unlikely we'll have a fix for this 4 year old bug in time to make that release. We can keep this on the radar for the next cycle, however (i.e. Fx79/78.1esr).
Comment hidden (advocacy) |
Comment 50•5 years ago
•
|
||
Since just the pref-flip would be acceptable for 78 I don't want to give up on this yet without talking to the WebExtensions team. Better to get that in than have to ship a Normandy update later (which, due to this bug, won't reach the affected people!). [updated: Normandy uses a completely separate mechanism and isn't affected]
Updated•5 years ago
|
Comment 52•5 years ago
|
||
Better to get that in than have to ship a Normandy update later (which, due to this bug, won't reach the affected people!).
Is that true? Normandy has its own installation and update paths that don't overlap with the "regular" install/update paths. If the Normandy implementation has a similar issue, that should probably be tracked in a separate bug.
Comment 53•5 years ago
|
||
Our blocklist should nix the dangerously vulnerable versions of addons and others will affect a smaller audience. This could not be used as a mass attack vector so sec-moderate seems more appropriate by our guidelines
Comment 54•5 years ago
•
|
||
(In reply to Andrew Swan [:aswan] from comment #52)
Better to get that in than have to ship a Normandy update later (which, due to this bug, won't reach the affected people!).
Is that true? Normandy has its own installation and update paths that don't overlap with the "regular" install/update paths.
I was definitely wrong about the installation path. I thought Normandy-installed addons used the normal addon update mechanism, but of course if we did a pref flip the problem would be resolved anyway (I was thinking of Test-Pilot, which did have its installs fail but that is because it was a web page using InstallTrigger
and very different from Normandy).
Assignee | ||
Comment 55•5 years ago
|
||
This changes the default for requiring builtin certs for extension install and update if we also
require signed extensions. For builds that allow unsigned extensions, the default still requires builtin certs.
Updated•5 years ago
|
Comment 56•5 years ago
|
||
Assignee | ||
Comment 57•5 years ago
|
||
Comment 58•5 years ago
|
||
Assignee | ||
Comment 59•5 years ago
|
||
Comment on attachment 9157804 [details]
Bug 1308251 relax builtincert requirement if we require signed extensions
Beta/Release Uplift Approval Request
- User impact if declined: users with 3rd party certs installed will fail to get addon updates
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: No
- Needs manual test from QE?: Yes
- If yes, steps to reproduce: will post in bug
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): The patch changes the default for a hidden pref in a way that a) preserves any user-set value, b) keeps the old default for builds that do not require addon signing (dev-ed, thunderbird, unbranded, etc).
A number of tests already tested with these prefs explicitly turned off and have done so for a long time.
Turning the pref off skips the builtin cert requirement, but certs must still be valid.
- String changes made/needed: n/a
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Comment 60•5 years ago
|
||
Comment on attachment 9157804 [details]
Bug 1308251 relax builtincert requirement if we require signed extensions
Approved for 78.0b9.
Comment 61•5 years ago
|
||
uplift |
Updated•5 years ago
|
Comment 62•5 years ago
|
||
Comment on attachment 9157804 [details]
Bug 1308251 relax builtincert requirement if we require signed extensions
Per Slack discussion, approving for 68.10esr also.
Comment 63•5 years ago
|
||
uplift |
Assignee | ||
Comment 64•5 years ago
|
||
Comment 65•5 years ago
|
||
Comment 66•5 years ago
|
||
bugherder |
Comment 67•5 years ago
•
|
||
How to test:
This will need a setup much like that used to test the "enterprise roots" feature (bug 1513069): an intercepting proxy with a CA cert installed in the OS root store. If you already have a test environment with a proxy like ZAP that would work, or you could install an antivirus with an "HTTPS scanning" feature. One I know about is Avast Web Shield.
- turn on the intercepting proxy.
1.a Make surehttps:
sites still work and
1.b that when you look at their certificates they are issued by the proxy and are not the ones from the site. - install an out-of-date version of Facebook container
- open
about:addons
- click the Gear button and "Check for updates"
In an unfixed version you will be told "No updates found" (rather than an error -- see bug 1556718)
In the fixed version your Facebook Container should be updated to the most recent version.
Update 2020-06-23: According to https://zakird.com/papers/https_interception.pdf Avast only intercepts IE on windows, but should intercept Firefox on Mac according to Fig. 4. That paper is several years old now, though, so some products may have changed. Others popular ones that were known to have an "HTTPS scanning" feature are Bitdefender, Kaspersky, ESET, McAfee, and Norton. Their sites still have support pages on how to disable it so I assume they all still do.
Updated•5 years ago
|
Comment 68•5 years ago
|
||
bugherder uplift |
Updated•5 years ago
|
Comment 69•5 years ago
|
||
bugherder |
Comment 70•5 years ago
|
||
Thank you.
I'm confirming our testing shows this both fixes the inability to check for security updates to add-ons and they successfully install when it finds one out of date.
Comment 71•5 years ago
|
||
There was one anomaly with the work around. On a client which used Lastpass for personal passwords, that addon was actually partially uninstalled without removing the user data when the patching flood gates opened when those about:config options were added. By this I mean the addon disappeared from the addons list and the icon from the tool bar was gone. Re-adding it from addons.mozila.org resolved that issue without losing the existing data.
Assignee | ||
Comment 72•5 years ago
|
||
Comment 73•5 years ago
|
||
ESR wasn't fixed by the patch that landed. Updating the status accordingly.
Assignee | ||
Comment 74•5 years ago
|
||
Comment 75•5 years ago
|
||
Comment on attachment 9158228 [details]
Bug 1308251 consolidate logic for requiring builtin certs for addon install/update
Revision D80488 was moved to bug 1647360. Setting attachment 9158228 [details] to obsolete.
Assignee | ||
Comment 76•5 years ago
|
||
Comment on attachment 9158210 [details]
Bug 1308251 fix builtin cert setting for esr
ESR Uplift Approval Request
- If this is not a sec:{high,crit} bug, please state case for ESR consideration: addon updates/installs will require builtin certs where ESR organizations may be using other certs.
- User impact if declined: no Addon updates
- Fix Landed on Version:
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): This is adding an additional check specific to esr to correct the default value of a pref read.
- String or UUID changes made by this patch:
Comment 77•5 years ago
|
||
Comment on attachment 9158210 [details]
Bug 1308251 fix builtin cert setting for esr
Approved for 68.10esr. Temporarily holding off on the ESR78 approval until the branch is ready for uplifts.
Comment 78•5 years ago
|
||
Comment on attachment 9158210 [details]
Bug 1308251 fix builtin cert setting for esr
Approved for 78.0esr.
Comment 79•5 years ago
|
||
bugherder uplift |
Comment 80•5 years ago
|
||
Comment 81•5 years ago
|
||
bugherder uplift |
Comment 82•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Updated•5 years ago
|
Comment 83•5 years ago
|
||
Comment 84•5 years ago
|
||
Hi,
I have managed to reproduce the initial issue using an old Nightly build 77.0a1 (build id: 20200503093615), Beta 78.0b7, Release version 77.0.1 and ESR 68.9.0 following the steps from comment 67, setting a proxy in Firefox settings and using ESET with HTTPS scanning feature enabled. "No updates found" is displayed when trying to update an older version of the Facebook Container add-on by clicking on "Check for updates".
The issue is verified - Fixed in 68.10.0 ESR (build id: 20200622191537), 78.0 ESR (build id: 20200623021425) and 78.0 RC (build id: 20200622230509). In all these versions the add-on is updated accordingly to the latest version followed by the message "Your add-ons have been updated".
BUT the issue still seems to be reproducible in latest Nightly 79.0a1 (build id: 20200624093107). Still "No updates found" after checking for updates, following the same steps.
Thanks and just let me know if any other information is needed.
Comment 85•5 years ago
|
||
AIUI this result is expected for nightly, because it has MOZ_REQUIRE_SIGNING disabled.
Comment 86•5 years ago
|
||
Based on comment 85, I will update the flag for Nightly as verified and change the status accordingly.
Thanks.
Updated•5 years ago
|
Description
•