I updated the minimum version to Windows 11 22H2 so we can be sure all
versions we impact have the bug already fixed:
https://chromium-review.googlesource.com/c/chromium/src/+/6656010

We can reconsider down the line if we want, but by the time we do maybe
enough users will be updated there or later that it's not worth it.

~ Ari Chivukula (Their/There/They're)

On Fri, Jun 20, 2025, 16:00 Rick Byers <rby...@chromium.org> wrote:

> LGTM3. Compat risk seems minimal (and yes likely below the bar needed for
> API owner approval, but more transparency doesn't hurt).
>
> On Fri, Jun 20, 2025 at 12:25 AM 'Erik Anderson' via blink-dev <
> blink-dev@chromium.org> wrote:
>
>> There was no new API here and thus no API detection mechanism. It’s just
>> a bug fix that ensures sockets are not rapidly reused toward the beginning
>> of the available range.
>>
>>
>>
>> Even when the bug is present, most networks work fine; it’s stateful
>> off-device middleboxes that might not see that the connection got
>> terminated and then get confused by a new connection from the same source
>> port. The use of this port randomization flag was shipped before, even with
>> the Windows bug; it took a couple of major Chrome releases before it was
>> determined it should be turned back off. That was the right decision, but
>> that’s also an indication that the risk of extreme breakage is low.
>>
>>
>>
>> The bug fix shipped has shipped with the Windows monthly security update
>> at least as early as November 2023 (some releases earlier). At this point,
>> only a device that hasn’t taken a security update from Windows for 18+
>> months would see the buggy behavior. I suppose if you wanted to be
>> extremely paranoid, you could look at the fourth version component on those
>> older versions to check for that update. Or just scoping to 22H2+ is
>> reasonable too.
>>
>>
>>
>> *From:* Ari Chivukula <aric...@chromium.org>
>> *Sent:* Thursday, June 19, 2025 6:50 PM
>> *To:* Will Harris <w...@chromium.org>; Erik Anderson <
>> erik.ander...@microsoft.com>
>> *Cc:* Jeremy Roman <jbro...@chromium.org>; Domenic Denicola <
>> dome...@chromium.org>; blink-dev <blink-dev@chromium.org>; Andrew
>> Williams <awil...@chromium.org>; Mike Taylor <miketa...@chromium.org>
>> *Subject:* [EXTERNAL] Re: [blink-dev] Re: Intent to Ship: Randomizing
>> TCP Port Allocation on Windows
>>
>>
>>
>> Not to my knowledge, but I'm adding @erik.ander...@microsoft.com
>> <erik.ander...@microsoft.com> in case there is something I missed.
>>
>>
>>
>> I'm fine with starting with 22H2+ only for now, and adding 20H1+ only if
>> there's a reliable way to detect the fix or metrics on fix rollout % that
>> are convincing.
>>
>>
>>
>> ~ Ari Chivukula (Their/There/They're)
>>
>>
>>
>> On Thu, Jun 19, 2025, 14:21 Will Harris <w...@chromium.org> wrote:
>>
>> in general, it's preferable to do a capability test via an OS API rather
>> than simply gate on Windows version. Does the new API that Microsoft added
>> (and backported) provide a way for the OS to signal that this
>> better/working API is available?
>>
>>
>>
>> Will
>>
>>
>>
>> On Thu, Jun 19, 2025 at 11:15 AM Ari Chivukula <aric...@chromium.org>
>> wrote:
>>
>> That's probably possible, though hopefully they have installed system
>> updates in the past year. We could just target 2022H2 and later if needed.
>>
>>
>>
>> ~ Ari Chivukula (Their/There/They're)
>>
>>
>>
>>
>>
>> On Thu, Jun 19, 2025 at 10:54 AM Jeremy Roman <jbro...@chromium.org>
>> wrote:
>>
>>
>>
>>
>>
>> On Thu, Jun 19, 2025 at 12:10 AM Domenic Denicola <dome...@chromium.org>
>> wrote:
>>
>> I believe this should be completely unobservable to web authors, right?
>> (Apart from maybe fewer or more network errors.)
>>
>>
>>
>> If so, I don't think this needs any LGTMs, as it fits well under the 
>> Web-developer-facing
>> change to existing behavior
>> <https://www.chromium.org/blink/launching-features/#behavior-changes> 
>> category.
>> (Which is... confusingly named
>> <https://github.com/GoogleChrome/chromium-dashboard/issues/5145>.) But,
>> in case it helps, LGTM1.
>>
>> On Thursday, June 19, 2025 at 12:12:34 AM UTC+9 Ari Chivukula wrote:
>>
>> *Contact emails*
>>
>> aric...@chromium.org, awil...@chromium.org, miketa...@chromium.org
>> Explainer
>>
>> None
>> Specification
>>
>> None
>>
>>
>>
>> *Summary*
>>
>> This launch enables TCP port randomization on versions of Windows (2020
>> H1 or later) where we do not expect to see issues with re-use of prior
>> ports occurring too fast (causing rejection due to timeouts on port
>> re-use). The rapid port re-use issue arises from the Birthday problem
>> <https://en.wikipedia.org/wiki/Birthday_problem>, where the probability
>> of randomly re-picking a port already seen rapidly converges with 100% for
>> each new port chosen when compared to port re-use in a sequential model.
>>
>>
>>
>> *Blink component*
>>
>> Blink>Network
>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ENetwork%22>
>>
>>
>>
>> *TAG review*
>>
>> None
>>
>>
>>
>> *TAG review status*
>>
>> Not applicable
>>
>>
>>
>> *Motivation*
>>
>> When port randomization is disabled (the default), sites are able to
>> count the amount of connections opened by other tabs if they check the TCP
>> port used for new connections before and after opening another window. This
>> knowledge can be used to glean information about other sites like whether
>> they are logged in or not.
>>
>>
>>
>> *Risks*
>>
>>
>>
>> *Interoperability and Compatibility*
>>
>> This launch only impacts Windows, and should not cause compatibility
>> issues as Microsoft backported their port randomization fix
>> <https://chromium-review.googlesource.com/c/chromium/src/+/5464674> to
>> Windows 10, 2020 H1 and tested it in Edge.
>>
>>
>>
>> Is it possible that we have users on versions >= 2020H1, < 2022H2 but who
>> have not received the backported fix (e.g., because they have not installed
>> the applicable update)? Would they encounter brokenness in Chrome?
>>
>>
>>
>>
>>
>> Chrome previously attempted to roll this out in 2021 but ran into (since
>> resolved) issues where rapid port re-use caused network errors.
>>
>>
>>
>> Rollout on linux isn’t needed as port randomization is enabled by default
>> while on macOS an issue similar to the one on Windows with rapid port
>> re-use causing issues is still around.
>>
>>
>>
>> *Gecko:* Appears to inherit OS defaults
>> <https://github.com/search?q=repo%3Amozilla-firefox%2Ffirefox+setsockopt&type=code&p=1>
>>
>>
>>
>> *WebKit:* Appears to inherit OS defaults
>> <https://github.com/search?q=repo%3AWebKit%2FWebKit+setsockopt&type=code>
>>
>>
>>
>> *Web developers:* N/A
>>
>>
>>
>> *Debuggability*
>>
>> This will be gated behind the base::feature kTcpPortRandomizationWin, so
>> if breakage is suspected that flag could be turned off to detect impact.
>> For how to control feature flags, see this
>> <https://source.chromium.org/chromium/chromium/src/+/main:base/feature_list.h;drc=159a65729cf8fca4d9f453d12d97ab6515360491;l=259>
>> .
>>
>>
>>
>> *Measurement*
>>
>> The histogram Net.TCPSocket.PortReuseTimeWindows2.{IPType}.{Result} will
>> be used to gauge whether port re-use timings fall too low, while
>> Net.TcpConnectAttempt.Latency.{Result} will be used to detect increases in
>> overall connection failure rates.
>>
>>
>>
>> *Will this feature be supported on all six Blink platforms (Windows, Mac,
>> Linux, ChromeOS, Android, and Android WebView)?*
>>
>> No, just Windows
>>
>>
>>
>> *Is this feature fully tested by web-platform-tests?*
>>
>> No, as this is a blink networking focused change browser tests or unit
>> tests are more likely.
>>
>>
>>
>> *Flag name on about://flags*
>>
>> None
>>
>>
>>
>> *Finch feature name*
>>
>> kTcpPortRandomizationWin
>>
>>
>>
>> *Rollout plan*
>>
>> This will be rolled out slowly to detect issues early and either change
>> the version target or roll back. We don’t believe an experiment is needed
>> or desired as the issues we saw before were not very prevalent, we likely
>> need to go beyond 1% to get enough data on Windows to know if there’s still
>> a problem.
>>
>>
>>
>> *Requires code in //chrome?*
>>
>> No
>>
>>
>>
>> *Tracking bug*
>>
>> https://crbug.com/40744069
>>
>>
>>
>> *Estimated milestones*
>>
>> 139
>>
>>
>>
>> *Link to entry on the Chrome Platform Status*
>>
>> https://chromestatus.com/feature/5106900286570496
>>
>>
>>
>> --
>> 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 visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5ac125fa-3adf-4193-a1ff-1bf28f2f6020n%40chromium.org
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5ac125fa-3adf-4193-a1ff-1bf28f2f6020n%40chromium.org?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 visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DJXMP6tCc8KFK_sC07jAbxuX7e%3Dz2sBS-L%2BPU790vafdg%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DJXMP6tCc8KFK_sC07jAbxuX7e%3Dz2sBS-L%2BPU790vafdg%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 visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DL_yey6QTmOv2mSx-uSyvTHebqDt3s3sm_KMxRZwKSqaA%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DL_yey6QTmOv2mSx-uSyvTHebqDt3s3sm_KMxRZwKSqaA%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 visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CH3PR00MB2435EDBEB1E8700F82B37597F47CA%40CH3PR00MB2435.namprd00.prod.outlook.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CH3PR00MB2435EDBEB1E8700F82B37597F47CA%40CH3PR00MB2435.namprd00.prod.outlook.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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DJLE%2BPcS2WqRSbSUcVdPkXZ09CgK8uyZkVhy8HBh6X4Mg%40mail.gmail.com.

Reply via email to