RepoJournal
.NET

@dotnet

The .NET runtime, ASP.NET, and the C# tooling

Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: .NET Full archive →

The Wire · Showcase

Kestrel blocks malformed SNI hostnames

By RepoJournal · Filed · About .NET

Kestrel now rejects malformed SNI server names, closing a DNS-label-boundary hole in the TLS handshake.

Kestrel's SniOptionsSelector accepted any ClientHello server_name string, and the wildcard path was a plain `EndsWith(suffix, OrdinalIgnoreCase)` scan that ignored DNS label boundaries [1]. That could let a crafted name, like one with an embedded null byte, slip past validation [2]. New checks `IsValidSniServerName` before both exact-name and wildcard lookups, so a handshake with a malformed name is now refused instead of misrouted [1]. Meanwhile Blazor fixed a DOM persistence bug where omitted attributes from `CaptureUnmatchedValues` stayed in the browser [3]. And the .NET JIT is trimming its walking infrastructure: fgWalkTree callbacks are being replaced with direct GenTreeVisitor implementations [4]. The move also deletes the old fgWalkData plumbing, and filling uninitialized memory with 0xcd is now the constant default, shaving 2.90% off checked-JIT instructions retired [5]. Android teams get a concurrency fix for FastTiming that stops heap corruption under sustained typemap load [6]. On the platform side, .NET 11.0.100-rc.1.26420.103 updates are flowing in [7], and aspnetcore, roslyn, and msbuild codeflow PRs are landing in dotnet/dotnet [8] [9] [10]. The Kestrel SNI validation and the Blazor DOM fix are immediate wins; the JIT refactor is a quieter but solid cleanup.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] Reject malformed SNI server names in Kestrel's SniOptionsSelector ↗ dotnet/aspnetcore
  2. [2] Reject malformed SNI server names in Kestrel's SniOptionsSelector (#68015) dotnet/aspnetcore
  3. [3] Unexpected DOM persistence: Omitted attributes not removed during re-render ↗ dotnet/aspnetcore
  4. [4] JIT: replace fgWalkTree callbacks with GenTreeVisitor implementations ↗ dotnet/runtime
  5. [5] JIT: Always fill uninitialized JIT memory with 0xcd ↗ dotnet/runtime
  6. [6] [native] Fix concurrent FastTiming event storage ↗ dotnet/android
  7. [7] .NET 11.0.100-rc.1.26420.103 Updates ↗ dotnet/dotnet
  8. [8] [main] Source code updates from dotnet/aspnetcore ↗ dotnet/dotnet
  9. [9] [main] Source code updates from dotnet/roslyn ↗ dotnet/dotnet
  10. [10] [main] Source code updates from dotnet/msbuild ↗ dotnet/dotnet

Quick answers

What shipped in .NET on August 21, 2026?
Kestrel now rejects malformed SNI server names, closing a DNS-label-boundary hole in the TLS handshake. In total, 39 commits and 41 pull requests landed.
Who contributed to .NET on August 21, 2026?
11 developers shipped this update, including Alexander Köplinger, dotnet-maestro, ViktorHofer, lewing, MihaZupan, jakobbotsch, jonathanpeppers, and Šimon Rozsíval, and 3 more.
What were the notable .NET updates?
Reject malformed SNI server names in Kestrel's SniOptionsSelector, Reject malformed SNI server names in Kestrel's SniOptionsSelector (#68015), and Unexpected DOM persistence: Omitted attributes not removed during re-render.

More from @dotnet

Daily updates, in your inbox

Follow .NET

Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?