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

Private to Public Network Switching #73

Open
russCvcTest opened this issue Sep 1, 2022 · 1 comment
Open

Private to Public Network Switching #73

russCvcTest opened this issue Sep 1, 2022 · 1 comment

Comments

@russCvcTest
Copy link

There exists conditions that, when met with this specification, result in unintended side-effects and breakage. When a client consumes a resource(s), that while on an internal network resolves to be private, and then subsequently switches to a public network, wherein resolution turns to public, preflights are triggered. These conditions can be replicated, for resources that resolve to private addresses while on an internal network and public addresses while on a public network, by leaving the private network and attempting to use the resources again on a public network.

In these cases, the browser sees resources that were private at last request, yet being requested by public IP space. Current default browser settings do allow the real, originating request to proceed, and everything gets back to working as normal. However, turning the Chromium flag "Respect the result of Private Network Access preflights" to enabled, in order to test what would be this specifications complete results, prevents the originating requests going through, which leads to breakage.

I also suspect, but did not replicate, that DNS caching by either (or both) the operating system and browser could result in unintended preflights.

@letitz
Copy link
Collaborator

letitz commented Sep 2, 2022

You're right, this is a currently a sharp edge. It should be at the very least mentioned in the specification.

I'm not sure there's much we can do to improve the state of affairs, since this looks very much like DNS rebinding from the point of view of the browser. DNS rebinding is typically used to perform attacks that this specification aims to mitigate.

See also #62 which deals with a similar issue that proxy users can run into. In that case, the browser knows about the use of a forward proxy, so it can apply preferential treatment to affected requests.

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

No branches or pull requests

2 participants