tailscale/wgengine
Christine Dodrill b89c757817 wgengine/tsdns: explicitly reject .onion lookups
Tor has a location-hidden service feature that enables users to host services
from inside the Tor network. Each of these gets a unique DNS name that ends with
.onion. As it stands now, if a misbehaving application somehow manages to make
a .onion DNS request to our DNS server, we will forward that to the DNS server,
which could leak that to malicious third parties. See the recent bug Brave had
with this[1] for more context.

RFC 7686 suggests that name resolution APIs and libraries MUST respond with
NXDOMAIN unless they can actually handle Tor lookups. We can't handle .onion
lookups, so we reject them.

[1]: https://twitter.com/albinowax/status/1362737949872431108

Fixes tailscale/corp#1351

Signed-off-by: Christine Dodrill <xe@tailscale.com>
2021-03-01 22:17:49 -08:00
..
filter wgengine/filter: use IPSet for localNets instead of prefixes. 2021-02-22 14:51:22 -08:00
magicsock wgengine/magicsock: remove TODO about endpoints-over-DERP 2021-02-24 21:34:31 -08:00
monitor wgengine/monitor: make Darwin monitor shut down cleanly, add test 2021-03-01 21:34:41 -08:00
netstack wgengine/netstack: fix 32-bit build broken from prior commit 2021-03-01 11:19:31 -08:00
router wgengine/router: toggle killswitch when using default routes on windows. 2021-03-01 19:37:22 -08:00
tsdns wgengine/tsdns: explicitly reject .onion lookups 2021-03-01 22:17:49 -08:00
tstun wgengine/filter: use IPSet for localNets instead of prefixes. 2021-02-22 14:51:22 -08:00
wgcfg ipn/ipnlocal: only filter out default routes when computing the local wg config. 2021-02-24 20:41:56 -08:00
wglog wgengine/wglog: drop 1/s "interface is up" messages. 2021-02-23 09:01:58 -08:00
winnet wgengine/winnet: don't build on non-windows 2021-02-09 21:09:24 -08:00
ifstatus_noop.go wgengine: make NewUserspaceEngine wait for TUN interface to be up on Windows 2021-02-25 07:58:17 -08:00
ifstatus_windows.go wgengine: make NewUserspaceEngine wait for TUN interface to be up on Windows 2021-02-25 07:58:17 -08:00
pendopen.go ipn: split LocalBackend off into new ipn/ipnlocal package 2021-02-04 14:04:23 -08:00
userspace.go wgengine: fix bug from earlier commit 2021-03-01 20:22:12 -08:00
userspace_test.go cmd/tailscaled, wgengine: remove --fake, replace with netstack 2021-03-01 11:09:19 -08:00
watchdog.go wgengine{,/monitor}: move interface state fetching/comparing to monitor 2021-03-01 13:01:08 -08:00
watchdog_test.go cmd/tailscaled, wgengine: remove --fake, replace with netstack 2021-03-01 11:09:19 -08:00
wgengine.go wgengine{,/monitor}: move interface state fetching/comparing to monitor 2021-03-01 13:01:08 -08:00