Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additions to "bad port list" for UDP due to HTTP/3 #1268

Open
enygren opened this issue Jul 15, 2021 · 4 comments
Open

Additions to "bad port list" for UDP due to HTTP/3 #1268

enygren opened this issue Jul 15, 2021 · 4 comments

Comments

@enygren
Copy link

enygren commented Jul 15, 2021

With the introduction of HTTP/3, Fetch should likely have additions to the bad port list covering common UDP attack vectors. As @davidben mentions in #1189 this should also probably explicitly apply to Alt-Svc and SVCB/HTTPS RR port targets. For example, @mnot raised on the HTTP & QUIC WG this list:

  • 53 - DNS (already a "bad port")
  • 123 - NTP (already a "bad port")
  • 1900 - SSDP
  • 5353 - mDNS
  • 11211 - memcached

The alternative may be to switch to a "good port" list (#1189)

@martinthomson
Copy link
Contributor

Note that @mnot raised this specifically for source ports, whereas the blocklist in the spec exists for destination ports. It's really important to be clear on this point.

I know that @annevk already has designs on unifying the port number blocklist for destination ports, but the introduction of a blocklist for source ports is new and likely unique to UDP.

@ricea
Copy link
Collaborator

ricea commented Jul 15, 2021

Many systems use the IANA suggested ephemeral ports 49152–65535 for source ports and so avoid most registered ports. However, it's complicated: https://en.wikipedia.org/wiki/Ephemeral_port

@martinthomson
Copy link
Contributor

Yep, it's not simple. It's even worse than that when you consider the effect of NAT on source ports. I think that IETF action is probably the best way to move on this.

@ricea
Copy link
Collaborator

ricea commented Nov 23, 2021

We've been discussing w3c/webtransport#229 and I think we might need a separate list of source ports to block for UDP-based protocols.

From the point of view of a NAT device, a TCP connection has a clear client and server, so usually only the destination port is interesting. But UDP is more ambiguous, and a packet going from an internet host to a client may cause a NAT binding to be formed.

Regardless, the WebTransport W3C standard would like to delegate to the Fetch standard for the list of ports to block.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants