Thanks - I misremembered which end of the class B network got jammed
together. 67.89.31533 is indeed the one that is "legal" syntax, and so of
course 67.89.1 is too.


On Thu, Aug 19, 2021 at 3:20 PM Matt Menke <mme...@google.com> wrote:

> Note that 127.0.1 is mapped to 127.0.0.1 by GURL, following the URL spec,
> so that would generally not make it to the DNS resolver (unless something
> tried to resolve it directly).  Per the URL spec, "31533.67.89" would not
> be normalized by GURL, but "67.89.31533" would be converted to
> 67.89.123.45.  My instrumentation was at the DNS layer, so "127.0.1" and
> "67.89.31533" would not show up as problematic hostnames in my metrics,
> though "31533.67.89" would.
>
> On Thu, Aug 19, 2021 at 9:10 AM Harald Alvestrand <h...@google.com> wrote:
>
>> An interesting property of all-numeric hostnames is that they *may* be
>> legitimate IPv4 addresses using highly archaic IP address formats - we're
>> so used to the 123.45.67.89 syntax that we forget that 31533.67.89 once was
>> regarded as a legitimate way to encode the same address (class B notation).
>>
>> There are also certain resolvers that will "helpfully" map an all-numeric
>> hostname presented in DNS to an IP address without asking anyone.
>> So if those two bugs (or "archaic features") occur together, the result
>> may be a successful resolution.
>>
>> No idea why it would occur more often on Android than on Windows, though.
>> And my Linux boxes don't resolve 127.0.1 to anything.
>>
>>
>>
>> On Thu, Aug 19, 2021 at 2:42 PM Yoav Weiss <yoavwe...@chromium.org>
>> wrote:
>>
>>> Interesting! What happens then in the "successful resolution" case Matt
>>> mentioned?
>>>
>>> On Thu, Aug 19, 2021 at 2:39 PM Harald Alvestrand <h...@google.com>
>>> wrote:
>>>
>>>> Department of odd facts:
>>>>
>>>> - The ICANN rules for new TLDs forbid all top level domain names that
>>>> start with a digit
>>>> - The IDNA rules for bidirectional scripts forbid domain names that
>>>> start with a digit (Unicode bidi afficandoes will know why)
>>>> - The only real reason why leading digits aren't outlawed in domain
>>>> names at the second level is 3com.
>>>>
>>>> It seems safe to say that no legitimate fully qualified hostname will
>>>> ever have a last component consisting only of digits.
>>>> That means the only time we could get a legitimate hostname is for
>>>> something that has to be resolved via a search path.
>>>>
>>>>
>>>> On Thu, Aug 19, 2021 at 2:33 PM Yoav Weiss <yoavwe...@chromium.org>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Aug 19, 2021 at 2:28 PM Matt Menke <mme...@google.com> wrote:
>>>>>
>>>>>> I created the title using Chrome Status's deprecation template, so
>>>>>> any confusion should be blamed on that.
>>>>>>
>>>>>
>>>>> +Jason Robbins <jrobb...@google.com> - on the title issues.
>>>>>
>>>>>
>>>>>>
>>>>>> I used the "Draft Intent to Deprecate and Remove email" button, and
>>>>>> assume I'd need to do a "Draft Intent to Ship email" before shipping to
>>>>>> stable, after a 50% trial on prerelease channels.
>>>>>>
>>>>>
>>>>> There's no need for 2 emails for removals. We can discuss the full
>>>>> deprecation, experimentation/trials and removal on stable here.
>>>>>
>>>>>
>>>>>>
>>>>>> On Thu, Aug 19, 2021 at 3:15 AM Yoav Weiss <yoavwe...@chromium.org>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>> On Wed, Aug 18, 2021 at 11:36 PM Matt Menke <mme...@google.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Aug 18, 2021 at 5:23 PM Yoav Weiss <yoavwe...@chromium.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Aug 18, 2021 at 11:18 PM Matt Menke <mme...@google.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> On Wed, Aug 18, 2021 at 4:53 PM Yoav Weiss <
>>>>>>>>>> yoavwe...@chromium.org> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Aug 18, 2021 at 8:47 PM 'Matt Menke' via blink-dev <
>>>>>>>>>>> blink-dev@chromium.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Contact emailsmme...@google.com
>>>>>>>>>>>>
>>>>>>>>>>>> ExplainerNone
>>>>>>>>>>>>
>>>>>>>>>>>> Specificationhttps://url.spec.whatwg.org/
>>>>>>>>>>>>
>>>>>>>>>>>> Summary
>>>>>>>>>>>>
>>>>>>>>>>>> Most hostnames that aren't valid IPv4 addresses, but end in
>>>>>>>>>>>> numbers are treated as valid, and looked up via DNS (e.g.,
>>>>>>>>>>>> http://foo.127.1/). Per the Public Suffix List spec, the
>>>>>>>>>>>> eTLD+1 of the hostname in that URL should be "127.1". If that is 
>>>>>>>>>>>> ever fed
>>>>>>>>>>>> back into a URLs, "http://127.1/ <http://127.0.0.1/>" is
>>>>>>>>>>>> mapped to "http://127.0.0.1/"; by the URL spec, which seems
>>>>>>>>>>>> potentially dangerous. "127.0.0.0.1" could also potentially be 
>>>>>>>>>>>> used to
>>>>>>>>>>>> confuse users. We want to reject URLs with these hostnames.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Blink componentInternals>Network>DNS
>>>>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3ENetwork%3EDNS>
>>>>>>>>>>>>
>>>>>>>>>>>> Motivation
>>>>>>>>>>>>
>>>>>>>>>>>> Most hostnames that aren't valid IPv4 addresses, but end in
>>>>>>>>>>>> numbers are treated as valid hostnames, and looked up via DNS. 
>>>>>>>>>>>> Example
>>>>>>>>>>>> hostnames: 127.0.0.0.1, foo.0.1, 10.0.0.09, 08.1.2.3. These can be
>>>>>>>>>>>> problematic for the following reason: * "http://foo.127.1/";
>>>>>>>>>>>> has an eTLD+1 of "127.1", per the public suffix list spec. If 
>>>>>>>>>>>> that's ever
>>>>>>>>>>>> used as the hostname in a new URL, however, as in "http://127.1
>>>>>>>>>>>> <http://127.0.0.1/>", it will then get mapped to "
>>>>>>>>>>>> http://127.0.0.1/";, per the URL spec, which is a different
>>>>>>>>>>>> host, which is not safe. * "http://127.0.0.0.1"; and "
>>>>>>>>>>>> http://1.2.3.09";, both of which are looked up via DNS rather
>>>>>>>>>>>> than failing or being treated as IPv4 hostnames, also seem 
>>>>>>>>>>>> potentially
>>>>>>>>>>>> confusing. While no exploit is currently known here, we want to 
>>>>>>>>>>>> remove
>>>>>>>>>>>> support for these as a preventative security measure. The URL spec 
>>>>>>>>>>>> has been
>>>>>>>>>>>> updated so that any URL with a hostname ending in a number that's 
>>>>>>>>>>>> not an
>>>>>>>>>>>> IPv4 address (including, e.g., http://foo.1./, but not
>>>>>>>>>>>> http://foo.1../) is considered invalid. Since this is part of
>>>>>>>>>>>> the URL spec, not the DNS spec, we want to reject these URLs are 
>>>>>>>>>>>> the GURL
>>>>>>>>>>>> layer, for URLs with appropriate protocols (http, https, ws, wss, 
>>>>>>>>>>>> file).
>>>>>>>>>>>> For consistency, we should also fail DNS lookup attempts of these 
>>>>>>>>>>>> sorts of
>>>>>>>>>>>> hostnames.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Initial public proposalhttps://github.com/whatwg/url/pull/619
>>>>>>>>>>>>
>>>>>>>>>>>> TAG reviewNot required for an Intent to Deprecate, I believe.
>>>>>>>>>>>>
>>>>>>>>>>>> TAG review statusNot applicable
>>>>>>>>>>>>
>>>>>>>>>>>> Risks
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Interoperability and Compatibility
>>>>>>>>>>>>
>>>>>>>>>>>> Any URL with an affected hostname will fail to load, and will
>>>>>>>>>>>> need to be migrated to another hostname. URLs of this form do 
>>>>>>>>>>>> appear to be
>>>>>>>>>>>> in use, though it's not clear under what circumstances. No entry 
>>>>>>>>>>>> in the
>>>>>>>>>>>> public suffix list is affected. Affected URLs make up no more than 
>>>>>>>>>>>> 0.0003%
>>>>>>>>>>>> of hostnames looked up via the host resolver on any platform, and 
>>>>>>>>>>>> are
>>>>>>>>>>>> basically not used in any file URLs, according to our metrics.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Do we have reason to believe these hostnames are not legitimate
>>>>>>>>>>> ones?
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Unfortunately, we have no insight into them - they could be
>>>>>>>>>> mistyped URLs sent to typo squatting ISPs that OSX lets through but 
>>>>>>>>>> the
>>>>>>>>>> Windows host resolver blocks, and various flavors of Linux treat
>>>>>>>>>> differently.  Or they could be mapped via a hosts file, or they 
>>>>>>>>>> could be
>>>>>>>>>> hostnames that only resolve on public networks.  Could be some 
>>>>>>>>>> network tool
>>>>>>>>>> that uses them when installed locally, but is only available on 
>>>>>>>>>> certain
>>>>>>>>>> platforms.  No reason to think one possibility is more likely than 
>>>>>>>>>> the
>>>>>>>>>> others.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Do we have UKM for them that would enable us to test a random
>>>>>>>>> sample?
>>>>>>>>> I'm concerned about blocking those hostnames if they are
>>>>>>>>> legitimate, as that's something that a web developer can't do anything
>>>>>>>>> about.
>>>>>>>>> So even if the number of hosts is small, I'd like to get more
>>>>>>>>> certainty that they are *not* legitimate hosts before blocking them.
>>>>>>>>>
>>>>>>>>
>>>>>>>> We have UKM on their number (0.0003% of DNS lookups on OSX, less
>>>>>>>> elsewhere - we can't meaningfully instrument percent of created 
>>>>>>>> GURLs), but
>>>>>>>> we don't have their hostnames, what they resolve to, or know anything 
>>>>>>>> else
>>>>>>>> about them, unfortunately.
>>>>>>>>
>>>>>>>> Navigation to a subset of these as frame URLs were broken at one
>>>>>>>> point - I'm pretty sure the breakage even made it to stable:
>>>>>>>> https://crbug.com/1173238.  There were no reports of problems.
>>>>>>>> Only non-IPv4 URLs where the last two components were broken, though, 
>>>>>>>> and
>>>>>>>> it didn't affect subresources.  On OSX and Android, over 99% of
>>>>>>>> successfully resolved problematic hostnames fit into that bucket, 
>>>>>>>> though on
>>>>>>>> Linux, only about 2% do.
>>>>>>>>
>>>>>>>> That doesn't give us any hard conclusions, except they're either
>>>>>>>> not deliberate navigations on OSX/Android, or they're not navigations.
>>>>>>>>
>>>>>>>
>>>>>>> :|
>>>>>>>
>>>>>>> One more question: Is this an intent to Prototype or an intent to
>>>>>>> deprecate? The title is a bit unclear..
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> On OSX and Android, about 90% of host resolver lookups for
>>>>>>>>>>>> these hostnames succeed, 60% do on Linux, and 2% on Windows and 
>>>>>>>>>>>> ChromeOS.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Do you know where those failures are coming from?
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Could be typos, could be the Windows and ChromeOS host resolvers
>>>>>>>>>> don't let them through.  Since we've had no filed bugs about them, I
>>>>>>>>>> suspect the failures are not deliberate navigations or intended 
>>>>>>>>>> network
>>>>>>>>>> requests.  I'm much more interested in where the successes are 
>>>>>>>>>> coming from,
>>>>>>>>>> myself.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> To allow for emergency disabling in case of wider than expected
>>>>>>>>>>>> breakage, I intend to add a feature for it, and do a 50% field 
>>>>>>>>>>>> trial on
>>>>>>>>>>>> pre-release channels, though plan to just enable the feature, 
>>>>>>>>>>>> rather than
>>>>>>>>>>>> do a gradual rollout to stable, given the low usage.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Gecko: Positive (
>>>>>>>>>>>> https://github.com/whatwg/url/pull/619#issuecomment-890826499
>>>>>>>>>>>> <https://www.chromestatus.com/admin/features/launch/5679790780579840/1?intent=1>
>>>>>>>>>>>> )
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Can you file an official position request?
>>>>>>>>>>> https://bit.ly/blink-signals
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Done for Mozilla:
>>>>>>>>>> https://github.com/mozilla/standards-positions/issues/568
>>>>>>>>>>
>>>>>>>>>> Should I also do this for WebKit as well?  They have in process
>>>>>>>>>> CLs, so not sure if it's still needed.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Agree that in-flight patches for WebKit are a sufficient positive
>>>>>>>>> signal.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> WebKit: In development (
>>>>>>>>>>>> https://bugs.webkit.org/show_bug.cgi?id=228826)
>>>>>>>>>>>>
>>>>>>>>>>>> Web developers: No signals
>>>>>>>>>>>>
>>>>>>>>>>>> Activation
>>>>>>>>>>>>
>>>>>>>>>>>> This breaks anything using one of these domains, and requires
>>>>>>>>>>>> migrating to other hostnames.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Security
>>>>>>>>>>>>
>>>>>>>>>>>> None
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Debuggability
>>>>>>>>>>>>
>>>>>>>>>>>> These will act like any other invalid URL. Behavior is context
>>>>>>>>>>>> dependent. Since this is logic deep within GURL, and GURLs are 
>>>>>>>>>>>> created in a
>>>>>>>>>>>> great many places, console warnings specifically for this seem not
>>>>>>>>>>>> practical.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Is this feature fully tested by web-platform-tests
>>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
>>>>>>>>>>>> ?No.  Javascript URL construction is tested, but URLs are used
>>>>>>>>>>>> in a great many other places, which don't have test coverage, 
>>>>>>>>>>>> since DNS
>>>>>>>>>>>> lookups for these domains must succeed in the first place for the 
>>>>>>>>>>>> tests to
>>>>>>>>>>>> be meaningful.
>>>>>>>>>>>>
>>>>>>>>>>>> Flag name
>>>>>>>>>>>>
>>>>>>>>>>>> Requires code in //chrome?False
>>>>>>>>>>>>
>>>>>>>>>>>> Tracking bughttps://crbug.com/1237032
>>>>>>>>>>>>
>>>>>>>>>>>> Estimated milestones
>>>>>>>>>>>> DevTrial on desktop 95
>>>>>>>>>>>> DevTrial on Webview 95
>>>>>>>>>>>>
>>>>>>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>>>>>>> https://www.chromestatus.com/feature/5679790780579840
>>>>>>>>>>>>
>>>>>>>>>>>> This intent message was generated by Chrome Platform Status
>>>>>>>>>>>> <https://www.chromestatus.com/>.
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>> Google Groups "blink-dev" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>> it, send an email to blink-dev+unsubscr...@chromium.org.
>>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEK7mvq%2Bfnau%3DE%2BONhe0kr9HOpN84eCpoub84%3DswKzPkrGzi5A%40mail.gmail.com
>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEK7mvq%2Bfnau%3DE%2BONhe0kr9HOpN84eCpoub84%3DswKzPkrGzi5A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>>> .
>>>>>>>>>>>>
>>>>>>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "blink-dev" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to blink-dev+unsubscr...@chromium.org.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWB4wVuGshgPaLVXp%3DYsWUiXgJhUABD3ZFJ9xbhg1J3ww%40mail.gmail.com
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWB4wVuGshgPaLVXp%3DYsWUiXgJhUABD3ZFJ9xbhg1J3ww%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOqqYVF2YadL8h6hREorqgGrKTb2zU-xkzmhsOpDfdpQ%2BeNX2Q%40mail.gmail.com.

Reply via email to