TRR deadlock when captive portal detection fails
Categories
(Core :: Networking: DNS, defect, P1)
Tracking
()
People
(Reporter: mt, Assigned: kershaw)
References
Details
(Whiteboard: [necko-triaged][trr][mode 3])
Attachments
(2 files)
Comment 1•7 years ago
|
||
Reporter | ||
Comment 2•7 years ago
|
||
Comment 3•7 years ago
|
||
Comment 4•7 years ago
|
||
Comment 5•7 years ago
|
||
Comment 6•7 years ago
|
||
Updated•7 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Actually this probably affects mode2 as well, in the split horizon case.
There's a chance that a network is using a remote captive portal service. If that service is set up to return different results based on the recursive resolver's IP, the user might be unable to log into the captive portal, or we might detect a captive portal even though it has already been cleared.
Solution:
- set the LOAD_DISABLE_TRR flag on the xhr in CaptiveDetect.jsm
- make sure the tab opened from ensureCaptivePortalTab also gets passed that flag
- Add the captive portal endpoint domain name to the list of excluded domains
Depending on the weird ways the CP is configured, we might have a problem if the user navigates to example.com but is redirected to the captive portal login page in a regular tab. But at least they'd have a way out by clicking the notification bar.
This needs a bunch of unit tests that might be difficult to write at the moment - especially for what happens if we have a DoH connection active and the CP decides to lock itself during that session.
Updated•6 years ago
|
Comment 8•6 years ago
•
|
||
This is useful to prevent issues in TRR mode 2 when a captive portal redirect occurs via DNS.
For example, if we are in an unlocked CP and in suddenly locks, we must make sure that we don't use a cached DNS entry from when the portal was unlocked.
This is especially relevant in split horizon situations.
This isn't useful in TRR mode 3, as the flag would just cause the resolution to fail.
For that we need to add the captive portal URI to the TRR exclusion list.
(In reply to Valentin Gosu [:valentin] from comment #8)
This isn't useful in TRR mode 3, as the flag would just cause the resolution to fail.
For that we need to add the captive portal URI to the TRR exclusion list.
Also note, that it would be only marginally useful with captive portals in mode 3, since it would only deal with DNS based captive portals, and would fail for CP that do a HTTP redirect to yet another domain (be it private or public).
Updated•6 years ago
|
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
bugherder |
Updated•6 years ago
|
Updated•6 years ago
|
Comment 12•6 years ago
|
||
Kershaw, could you pick this up? Comment 8 seems to say we still need to fix it for mode 3.
Assignee | ||
Comment 13•6 years ago
|
||
Comment 14•6 years ago
|
||
Comment 15•6 years ago
|
||
bugherder |
Comment 16•6 years ago
|
||
Kershaw, can this be closed now? Looks like the leave-open
keyword is set before your patch.
Assignee | ||
Comment 17•6 years ago
|
||
(In reply to Nhi Nguyen (:nhi) from comment #16)
Kershaw, can this be closed now? Looks like the
leave-open
keyword is set before your patch.
Yeah, I think we can close this.
Description
•