Skip to content

Merging internal commits for release/9.0 - #69179

Merged
wtgodbe merged 15 commits into
release/9.0from
internal-merge-9.0-2026-09-09-1723
Sep 9, 2026
Merged

wtgodbe merged 15 commits into
release/9.0from
internal-merge-9.0-2026-09-09-1723

Conversation

@dotnet-bot

Copy link
Copy Markdown
Contributor

No description provided.

dotnet-bot and others added 15 commits July 21, 2026 21:28
…otnet-efcore build 20260721.9

On relative base path root
dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 9.0.19 -> To Version 9.0.19
…ng/internal/dotnet-efcore

This pull request updates the following dependencies

[marker]: <> (Begin:67a6df8f-40a9-4218-839a-e336f1bd1d79)
## From https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- **Subscription**: [67a6df8f-40a9-4218-839a-e336f1bd1d79](https://maestro.dot.net/subscriptions?search=67a6df8f-40a9-4218-839a-e336f1bd1d79)
- **Build**: [20260721.9](https://dev.azure.com/dnceng/internal/_build/results?buildId=3028216) ([323815](https://maestro.dot.net/channel/5128/azdo:dnceng:internal:dotnet-efcore/build/323815))
- **Date Produced**: July 21, 2026 9:11:14 PM UTC
- **Commit**: [24de17d952f5cbbe4eaa872c02ad4b4346788845](https://dev.azure.com/dnceng/internal/_git/dotnet-efcore?_a=history&version=GC24de17d952f5cbbe4eaa872c02ad4b4346788845)
- **Branch**: [refs/heads/internal/release/9.0](https://dev.azure.com/dnceng/internal/_git/dotnet-efcore?version=GBrefs/heads/internal/release/9.0)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [9.0.19 to 9.0.19][1]
     - dotnet-ef
     - Microsoft.EntityFrameworkCore
     - Microsoft.EntityFrameworkCore.Design
     - Microsoft.EntityFrameworkCore.InMemory
     - Microsoft.EntityFrameworkCore.Relational
     - Microsoft.EntityFrameworkCore.Sqlite
     - Microsoft.EntityFrameworkCore.SqlServer
     - Microsoft.EntityFrameworkCore.Tools

[1]: https://dev.azure.com/dnceng/internal/_git/dotnet-efcore/branches?baseVersion=GCd45c6483aa13a1c4ecc6e9da427ce6826ffb45a5&targetVersion=GC24de17d952f5cbbe4eaa872c02ad4b4346788845&_a=files

[DependencyUpdate]: <> (End)


[marker]: <> (End:67a6df8f-40a9-4218-839a-e336f1bd1d79)
…and cap cache of pathDescriptors

Fixing 2 problems:

1) A query-string parameter written with a mixed or shortened field-name spelling (e.g. `?tenantScope.tenant_id=…` or a parent like `?timestamp_value=…`) could bypass the existing name check and overwrite a value already bound from the URL path. This change compares the resolved field identities instead of raw name strings, so query parameters can no longer clobber route-bound fields regardless of how they're spelled.

2) A transcoded method whose request has a self-referential message field allows an unbounded set of valid dotted paths, so the per-endpoint path descriptor cache could grow without limit from repeated requests. Cap the cache size (default 1000, overridable via AppContext) to prevent it.
… IIS out-of-process (MaxRequestBodySize)

## Description
On IIS out-of-process hosting, IISMiddleware cleared the request body size limit (MaxRequestBodySize = null). RequestDecompressionMiddleware consumed that as an unbounded decompressed-body budget, allowing an anonymous decompression-bomb DoS (temporary, with amplification).
## Fix
Gate the null-assignment behind the Microsoft.AspNetCore.Server.IISIntegration.ClearMaxRequestBodySize AppContext switch (default off). By default the server request body size limit is preserved; apps needing the legacy defer-to-IIS behavior can opt in.
## Customer Impact
Prevents unbounded request-body decompression on IIS out-of-process. Opt-out switch provided for compatibility.
## Regression
No. Long-standing behavior since 2.0; exposed via RequestDecompression (7.0+).
## Risk
Low. Minimal, gated change with opt-out. Product change validated identically on main; unit tests added. Local full build blocked by internal feed provisioning; relying on PR CI.
## Testing
Unit tests: default preserves limit, switch clears it, read-only untouched, absent feature. Verified end-to-end on main via real IIS Express out-of-process deploy.

----
#### AI description  (iteration 1)
#### PR Classification
Bug fix to address unbounded request decompression vulnerability in IIS out-of-process by changing the default behavior of MaxRequestBodySize handling.

#### PR Summary
This PR fixes a security issue where MaxRequestBodySize was being cleared by default in IIS out-of-process mode, allowing unbounded request decompression. The fix changes the default behavior to preserve the server's configured MaxRequestBodySize limit while providing an opt-in switch to restore the legacy behavior.

- `IISMiddleware.cs`: Changed default behavior to no longer clear MaxRequestBodySize; added `ClearMaxRequestBodySizeSwitch` AppContext switch to enable legacy behavior of clearing the limit
- `IISMiddlewareTests.cs`: Added comprehensive test coverage for MaxRequestBodySize handling including default behavior, opt-in switch behavior, read-only feature handling, and missing feature scenarios
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
Updates identity redirect handling.

----
#### AI description  (iteration 1)
#### PR Classification
Security bug fix to prevent open redirect vulnerabilities in identity redirect handling.

#### PR Summary
This pull request strengthens the open redirect protection in the Blazor Web template's identity redirect manager by adding an additional validation check for protocol-relative URLs.

- `IdentityRedirectManager.cs`: Added validation to reject URIs starting with `//` (protocol-relative URLs) to prevent potential open redirect attacks, in addition to the existing well-formed URI check.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
Restricts parameter updates and removal to roots created by JavaScript.

----
#### AI description  (iteration 1)
#### PR Classification
Security enhancement to restrict JavaScript root component operations by validating component ownership.

#### PR Summary
This pull request adds validation to ensure that JavaScript can only modify or remove root components that it originally created, preventing unauthorized operations on server-rendered components.

- `JSComponentInterop.cs`: Added `_jsComponentIds` HashSet to track JS-added components and `EnsureValidJSComponentId()` validation method that throws `InvalidOperationException` for unauthorized operations in `SetRootComponentParameters()` and `RemoveRootComponent()`.
- `JSComponentInteropTest.cs`: Added comprehensive unit tests verifying that operations on server-rendered components are rejected while JS-added components remain accessible.
- `JSRootComponentsTest.cs` and test assets: Added E2E test case and supporting JavaScript helpers to verify parameters cannot be updated on non-JS root components, with UI elements to trigger and display validation errors.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
…otnet-efcore build 20260811.8

On relative base path root
dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 9.0.19 -> To Version 9.0.20
…otnet-runtime build 20260810.19

On relative base path root
Microsoft.Bcl.AsyncInterfaces , Microsoft.Bcl.TimeProvider , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.Diagnostics , Microsoft.Extensions.Diagnostics.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Http , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.NET.Runtime.MonoAOTCompiler.Task , Microsoft.NET.Runtime.WebAssembly.Sdk , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm , Microsoft.NETCore.App.Runtime.win-x64 , System.Collections.Immutable , System.Composition , System.Configuration.ConfigurationManager , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , System.Diagnostics.PerformanceCounter , System.DirectoryServices.Protocols , System.IO.Hashing , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.ServerSentEvents , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.Caching , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.AccessControl , System.Threading.Channels , System.Threading.RateLimiting From Version 9.0.19 -> To Version 9.0.20
Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Internal.Runtime.AspNetCore.Transport , Microsoft.NETCore.BrowserDebugHost.Transport , Microsoft.NETCore.Platforms , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.19-servicing.26367.24 -> To Version 9.0.20-servicing.26410.19
…otnet-runtime build 20260813.15

On relative base path root
Microsoft.Bcl.AsyncInterfaces , Microsoft.Bcl.TimeProvider , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.Diagnostics , Microsoft.Extensions.Diagnostics.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Http , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.NET.Runtime.MonoAOTCompiler.Task , Microsoft.NET.Runtime.WebAssembly.Sdk , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm , Microsoft.NETCore.App.Runtime.win-x64 , System.Collections.Immutable , System.Composition , System.Configuration.ConfigurationManager , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , System.Diagnostics.PerformanceCounter , System.DirectoryServices.Protocols , System.IO.Hashing , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.ServerSentEvents , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.Caching , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.AccessControl , System.Threading.Channels , System.Threading.RateLimiting From Version 9.0.19 -> To Version 9.0.20
Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Internal.Runtime.AspNetCore.Transport , Microsoft.NETCore.BrowserDebugHost.Transport , Microsoft.NETCore.Platforms , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.19-servicing.26367.24 -> To Version 9.0.20-servicing.26413.15
…ng/internal/dotnet-efcore, dnceng/internal/dotnet-runtime

This pull request updates the following dependencies

[marker]: <> (Begin:67a6df8f-40a9-4218-839a-e336f1bd1d79)
## From https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- **Subscription**: [67a6df8f-40a9-4218-839a-e336f1bd1d79](https://maestro.dot.net/subscriptions?search=67a6df8f-40a9-4218-839a-e336f1bd1d79)
- **Build**: [20260811.8](https://dev.azure.com/dnceng/internal/_build/results?buildId=3045304) ([326676](https://maestro.dot.net/channel/5128/azdo:dnceng:internal:dotnet-efcore/build/326676))
- **Date Produced**: August 11, 2026 11:45:25 PM UTC
- **Commit**: [06b2df69ff6600aedde09f61f4d79d702d794195](https://dev.azure.com/dnceng/internal/_git/dotnet-efcore?_a=history&version=GC06b2df69ff6600aedde09f61f4d79d702d794195)
- **Branch**: [refs/heads/internal/release/9.0](https://dev.azure.com/dnceng/internal/_git/dotnet-efcore?version=GBrefs/heads/internal/release/9.0)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [9.0.19 to 9.0.20][1]
     - dotnet-ef
     - Microsoft.EntityFrameworkCore
     - Microsoft.EntityFrameworkCore.Design
     - Microsoft.EntityFrameworkCore.InMemory
     - Microsoft.EntityFrameworkCore.Relational
     - Microsoft.EntityFrameworkCore.Sqlite
     - Microsoft.EntityFrameworkCore.SqlServer
     - Microsoft.EntityFrameworkCore.Tools

[1]: https://dev.azure.com/dnceng/internal/_git/dotnet-efcore/branches?baseVersion=GC24de17d952f5cbbe4eaa872c02ad4b4346788845&targetVersion=GC06b2df69ff6600aedde09f61f4d79d702d794195&_a=files

[DependencyUpdate]: <> (End)


[marker]: <> (End:67a6df8f-40a9-4218-839a-e336f1bd1d79)



[marker]: <> (Begin:ff8719c2-a1bf-4aef-ad09-b38561e103bc)
## From https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- **Subscription**: [ff8719c2-a1bf-4aef-ad09-b38561e103bc](https://maestro.dot.net/subscriptions?search=ff8719c2-a1bf-4aef-ad09-b38561e103bc)
- **Build**: [20260810.19](https://dev.azure.com/dnceng/internal/_build/results?buildId=3043881) ([326772](https://maestro.dot.net/channel/5128/azdo:dnceng:internal:dotnet-runtime/build/326772))
- **Date Produced**: August 12, 2026 1:25:18 PM UTC
- **Commit**: [845dbebc7cfeb77098f2aa889f18753d0d5869b8](https://dev.azure.com/dnceng/internal/_git/dotnet-runtime?_a=history&version=GC845dbebc7cfeb77098f2aa889f18753d0d5869b8)
- **Branch**: [refs/heads/internal/release/9.0](https://dev.azure.com/dnceng/internal/_git/dotnet-runtime?version=GBrefs/heads/internal/release/9.0)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [9.0.19 to 9.0.20][2]
     - Microsoft.Bcl.AsyncInterfaces
     - Microsoft.Bcl.TimeProvider
     - Microsoft.Extensions.Caching.Abstractions
     - Microsoft.Extensions.Caching.Memory
     - Microsoft.Extensions.Configuration
     - Microsoft.Extensions.Configuration.Abstractions
     - Microsoft.Extensions.Configuration.Binder
     - Microsoft.Extensions.Configuration.CommandLine
     - Microsoft.Extensions.Configuration.EnvironmentVariables
     - Microsoft.Extensions.Configuration.FileExtensio...
…otnet-efcore build 20260813.6

On relative base path root
dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 9.0.20 -> To Version 9.0.20
…ng/internal/dotnet-efcore

This pull request updates the following dependencies

[marker]: <> (Begin:67a6df8f-40a9-4218-839a-e336f1bd1d79)
## From https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- **Subscription**: [67a6df8f-40a9-4218-839a-e336f1bd1d79](https://maestro.dot.net/subscriptions?search=67a6df8f-40a9-4218-839a-e336f1bd1d79)
- **Build**: [20260813.6](https://dev.azure.com/dnceng/internal/_build/results?buildId=3047628) ([327114](https://maestro.dot.net/channel/5128/azdo:dnceng:internal:dotnet-efcore/build/327114))
- **Date Produced**: August 14, 2026 1:47:37 AM UTC
- **Commit**: [e3050de15c005dfd3223da1475572044b72a6758](https://dev.azure.com/dnceng/internal/_git/dotnet-efcore?_a=history&version=GCe3050de15c005dfd3223da1475572044b72a6758)
- **Branch**: [refs/heads/internal/release/9.0](https://dev.azure.com/dnceng/internal/_git/dotnet-efcore?version=GBrefs/heads/internal/release/9.0)

[DependencyUpdate]: <> (Begin)

- **Dependency Updates**:
  - From [9.0.20 to 9.0.20][1]
     - dotnet-ef
     - Microsoft.EntityFrameworkCore
     - Microsoft.EntityFrameworkCore.Design
     - Microsoft.EntityFrameworkCore.InMemory
     - Microsoft.EntityFrameworkCore.Relational
     - Microsoft.EntityFrameworkCore.Sqlite
     - Microsoft.EntityFrameworkCore.SqlServer
     - Microsoft.EntityFrameworkCore.Tools

[1]: https://dev.azure.com/dnceng/internal/_git/dotnet-efcore/branches?baseVersion=GC06b2df69ff6600aedde09f61f4d79d702d794195&targetVersion=GCe3050de15c005dfd3223da1475572044b72a6758&_a=files

[DependencyUpdate]: <> (End)


[marker]: <> (End:67a6df8f-40a9-4218-839a-e336f1bd1d79)
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Hi @dotnet-bot. If this is not a tell-mode PR, please make sure to follow the instructions laid out in the servicing process document.
Otherwise, please add tell-mode label.

@wtgodbe
wtgodbe merged commit 656e44a into release/9.0 Sep 9, 2026
22 of 27 checks passed
@wtgodbe
wtgodbe deleted the internal-merge-9.0-2026-09-09-1723 branch September 9, 2026 23:19
This was referenced Oct 14, 2026
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

Successfully merging this pull request may close these issues.

4 participants