@@ -86,6 +86,52 @@ Read the full issue title and body first using:
8686gh issue view < NUMBER> --repo $GITHUB_REPOSITORY --json title,body,labels,number
8787```
8888
89+ ## CRITICAL: Security-Sensitive Issue Handling
90+
91+ ** Before performing ANY analysis** , determine whether the issue describes or hints at
92+ a security vulnerability, MSRC case, exploit, or anything that could compromise
93+ the security of services, applications, or users relying on ASP.NET Core or its
94+ tooling.
95+
96+ ** Indicators of a security-sensitive issue:**
97+ - Mentions CVE, MSRC, vulnerability, exploit, RCE, XSS, CSRF bypass, SQL injection,
98+ privilege escalation, authentication bypass, token leakage, secret exposure,
99+ deserialization attack, path traversal, denial of service, or similar terms
100+ - Describes a way to bypass security controls, authorization, or authentication
101+ - Shows how to access data or systems without proper authorization
102+ - Reports a crash or unexpected behavior that could be weaponized
103+ - Mentions "responsible disclosure", "coordinated disclosure", or "security advisory"
104+ - Contains proof-of-concept code that demonstrates breaking a security boundary
105+
106+ ** If the issue IS or MAY BE security-sensitive, you MUST:**
107+
108+ 1 . ** STOP all detailed analysis immediately.** Do NOT describe the vulnerability
109+ mechanism, do NOT explain how or why it is broken, do NOT include reproduction
110+ steps, do NOT reference specific code paths or attack vectors.
111+ 2 . Apply ONLY the area label (e.g., ` area-auth ` , ` area-networking ` ) and ` bug ` .
112+ 3 . Post an extremely minimal comment — nothing more than:
113+
114+ ``` markdown
115+ ### Triage Summary
116+
117+ ** Area:** ` area-xyz `
118+ ** Type:** ` bug `
119+
120+ > This issue may involve a security-sensitive topic. Detailed triage has been
121+ > intentionally withheld. Please review this issue through the appropriate
122+ > internal security process. If this is a genuine security vulnerability, it
123+ > should be reported privately via https://msrc.microsoft.com and ** not** in a
124+ > public GitHub issue.
125+ ```
126+
127+ 4 . Do NOT search for or mention duplicates. Do NOT add notes explaining the
128+ impact, root cause, or affected components beyond the area label.
129+
130+ ** This rule overrides ALL other instructions.** When in doubt about whether
131+ something is security-sensitive, treat it as security-sensitive.
132+
133+ ---
134+
89135## Step 1: Area Classification
90136
91137Classify the issue into exactly ** one** area label from the list below. Pick the
@@ -94,37 +140,131 @@ API names mentioned.
94140
95141### Area Labels Reference
96142
97- | Label | Description |
98- | -------| -------------|
99- | ` area-auth ` | Authentication, Authorization, OAuth, OIDC, Bearer tokens |
100- | ` area-blazor ` | Blazor, Razor Components (WASM issues may also relate to dotnet/runtime) |
101- | ` area-commandlinetools ` | CLI tools: dotnet-dev-certs, dotnet-user-jwts, OpenAPI tooling |
102- | ` area-dataprotection ` | Data Protection APIs and key management |
103- | ` area-grpc ` | gRPC wire-up, templates (library itself is grpc/grpc-dotnet) |
104- | ` area-healthchecks ` | Health check endpoints and middleware |
105- | ` area-hosting ` | Host builder, GenericHost, WebHost, startup |
106- | ` area-identity ` | ASP.NET Core Identity, identity providers |
107- | ` area-infrastructure ` | MSBuild, build scripts, CI, installers, shared framework |
108- | ` area-middleware ` | URL rewrite, redirect, response cache/compression, session, caching |
109- | ` area-minimal ` | Minimal APIs, endpoint filters, parameter binding, request delegate generator |
110- | ` area-mvc ` | MVC, Controllers, Localization, CORS, templates |
111- | ` area-networking ` | Kestrel, HTTP/2, HTTP/3, YARP, WebSockets, HttpClient factory, HTTP abstractions |
112- | ` area-perf ` | Performance bugs, perf infrastructure, benchmarks |
113- | ` area-routing ` | Endpoint routing, route matching, URL generation |
114- | ` area-security ` | Security features and hardening |
115- | ` area-signalr ` | SignalR clients and servers |
116- | ` area-ui-rendering ` | MVC Views/Pages, Razor Views/Pages, Razor engine rendering |
117- | ` area-unified-build ` | dotnet/dotnet unified build, source-build |
118-
119- ** Hints for disambiguation:**
120- - Kestrel, HTTP protocols, WebSockets, server errors → ` area-networking `
121- - Blazor component lifecycle, JSInterop, WASM, render modes → ` area-blazor `
122- - Razor Pages rendering, TagHelpers, view compilation → ` area-ui-rendering `
123- - ` MapGet ` /` MapPost ` , endpoint filters, ` Results.* ` → ` area-minimal `
124- - Controller-based APIs, ` [ApiController] ` , model binding in controllers → ` area-mvc `
125- - OAuth/OIDC middleware, ` [Authorize] ` , policy-based auth → ` area-auth `
126- - ` SignInManager ` , ` UserManager ` , Identity scaffolding → ` area-identity `
127- - Build failures, CI, ` eng/ ` scripts, package references → ` area-infrastructure `
143+ Each area below lists key types, APIs, and concepts. Use these as strong signals
144+ when the issue title/body mentions them.
145+
146+ #### ` area-networking `
147+ Kestrel, HttpSys, HTTP/2, HTTP/3, QUIC, YARP, WebSockets, HTTP abstractions, connection management.
148+ ** Key types:** ` KestrelServer ` , ` KestrelServerOptions ` , ` KestrelServerLimits ` , ` ListenOptions ` , ` HttpsConnectionAdapterOptions ` , ` Http2Limits ` , ` Http3Limits ` , ` HttpSysOptions ` , ` ConnectionContext ` , ` ConnectionHandler ` , ` IConnectionBuilder ` , ` IConnectionFactory ` , ` IConnectionListener ` , ` IConnectionListenerFactory ` , ` ConnectionAbortedException ` , ` ConnectionResetException ` , ` AddressInUseException ` , ` MinDataRate ` , ` PipeReader ` , ` PipeWriter ` , ` IDuplexPipe ` , ` IServer `
149+ ** Config:** ` UseKestrel() ` , ` ConfigureKestrel() ` , ` UseHttpSys() ` , ` Listen() ` , ` ListenAnyIP() ` , ` ListenLocalhost() ` , ` UseHttps() `
150+ ** Concepts:** port binding, TLS/SSL, HTTPS, connection timeout, keep-alive, request body size limits, named pipes, Unix sockets, reverse proxy, connection middleware, transport layer, ` System.IO.Pipelines `
151+
152+ #### ` area-blazor `
153+ Blazor, Razor Components, WebAssembly, interactive rendering modes, circuits.
154+ ** Key types:** ` ComponentBase ` , ` LayoutComponentBase ` , ` DynamicComponent ` , ` ErrorBoundary ` , ` NavigationManager ` , ` PersistentComponentState ` , ` CascadingValue<T> ` , ` RenderMode ` (` InteractiveServer ` , ` InteractiveWebAssembly ` , ` InteractiveAuto ` ), ` EditContext ` , ` DataAnnotationsValidator ` , ` CircuitHandler ` , ` NavLink ` , ` RouteView ` , ` HeadOutlet ` , ` StreamRendering ` , ` IComponentRenderMode ` , ` RenderFragment ` , ` EventCallback ` , ` IJSRuntime ` , ` IJSObjectReference ` , ` ProtectedBrowserStorage `
155+ ** Config:** ` AddRazorComponents() ` , ` AddInteractiveServerComponents() ` , ` AddInteractiveWebAssemblyComponents() ` , ` MapRazorComponents<T>() `
156+ ** Concepts:** ` .razor ` files, ` @code ` , render tree, JSInterop, circuit, prerendering, streaming rendering, enhanced navigation, form handling, cascading parameters, Blazor Server, Blazor WASM, Blazor Web App
157+
158+ #### ` area-auth `
159+ Authentication, Authorization, OAuth, OIDC, Bearer tokens, cookie auth, JWT.
160+ ** Key types:** ` IAuthenticationHandler ` , ` IAuthenticationService ` , ` AuthenticationMiddleware ` , ` AuthenticationBuilder ` , ` AuthenticationScheme ` , ` AuthenticationTicket ` , ` CookieAuthenticationHandler ` , ` CookieAuthenticationOptions ` , ` JwtBearerHandler ` , ` JwtBearerOptions ` , ` OAuthHandler<T> ` , ` OpenIdConnectHandler ` , ` OpenIdConnectOptions ` , ` IAuthorizationService ` , ` IAuthorizationHandler ` , ` IAuthorizationRequirement ` , ` AuthorizationPolicy ` , ` AuthorizationMiddleware ` , ` AuthorizeAttribute ` , ` AllowAnonymousAttribute ` , ` IPolicyEvaluator ` , ` ClaimsPrincipal ` , ` AuthenticateResult `
161+ ** Config:** ` AddAuthentication() ` , ` UseAuthentication() ` , ` AddAuthorization() ` , ` UseAuthorization() ` , ` AddJwtBearer() ` , ` AddCookie() ` , ` AddOpenIdConnect() ` , ` AddOAuth() `
162+ ** Concepts:** authentication scheme, claims, bearer token, cookie auth, JWT validation, OAuth 2.0, OpenID Connect, authorization policy, ` [Authorize] ` , challenge, forbid, sign-in, sign-out, token validation
163+
164+ #### ` area-identity `
165+ ASP.NET Core Identity, user/role management, identity providers, scaffolding.
166+ ** Key types:** ` UserManager<TUser> ` , ` SignInManager<TUser> ` , ` RoleManager<TRole> ` , ` IdentityOptions ` , ` IdentityResult ` , ` IdentityError ` , ` IdentityUser ` , ` IdentityRole ` , ` IUserStore<T> ` , ` IRoleStore<T> ` , ` IPasswordHasher<T> ` , ` IUserClaimsPrincipalFactory<T> ` , ` ExternalLoginInfo ` , ` IEmailSender ` , ` SecurityStampValidator ` , ` IPasskeyHandler<T> `
167+ ** Config:** ` AddIdentity<TUser,TRole>() ` , ` AddDefaultIdentity<TUser>() ` , ` MapIdentityApi<TUser>() `
168+ ** Concepts:** password hashing, two-factor authentication (2FA), external login, lockout, security stamp, email confirmation, password reset, passkey, token provider, Identity UI, Identity scaffolding, Identity API endpoints
169+
170+ #### ` area-mvc `
171+ MVC, Controllers, Actions, model binding, formatters, Razor Pages (page model logic).
172+ ** Key types:** ` Controller ` , ` ControllerBase ` , ` ApiControllerAttribute ` , ` MvcOptions ` , ` ApiBehaviorOptions ` , ` ActionResult ` , ` IActionResult ` , ` JsonResult ` , ` ObjectResult ` , ` PageModel ` , ` IInputFormatter ` , ` IOutputFormatter ` , ` IUrlHelper ` , ` IFilterMetadata ` , ` ModelBinderAttribute ` , ` BindingInfo ` , ` ActionContext `
173+ ** Config:** ` AddMvc() ` , ` AddControllers() ` , ` AddControllersWithViews() ` , ` AddRazorPages() ` , ` MapControllers() ` , ` MapControllerRoute() ` , ` MapRazorPages() `
174+ ** Concepts:** ` [ApiController] ` , ` [Route] ` , ` [HttpGet] ` /` [HttpPost] ` , model binding, model validation, action filters, exception filters, content negotiation, Razor Pages page model, areas, formatters
175+
176+ #### ` area-minimal `
177+ Minimal APIs, endpoint filters, parameter binding, request delegate generator, HTTP results.
178+ ** Key types:** ` HttpContext ` , ` HttpRequest ` , ` HttpResponse ` , ` IResult ` , ` Results ` , ` TypedResults ` , ` IEndpointFilter ` , ` EndpointFilterInvocationContext ` , ` ProblemDetails ` , ` HttpValidationProblemDetails ` , ` IProblemDetailsService ` , ` IMiddleware ` , ` IApplicationBuilder ` , ` Endpoint ` , ` IEndpointConventionBuilder ` , ` BadHttpRequestException ` , ` IHttpContextAccessor ` , ` JsonOptions `
179+ ** Config:** ` app.MapGet() ` , ` app.MapPost() ` , ` app.MapPut() ` , ` app.MapDelete() ` , ` app.MapPatch() ` , ` app.MapGroup() ` , ` Results.Ok() ` , ` Results.NotFound() ` , ` TypedResults.Ok() ` , ` AddProblemDetails() `
180+ ** Concepts:** route handler, endpoint filter, parameter binding, ` [FromBody] ` , ` [FromQuery] ` , ` [FromRoute] ` , ` [FromHeader] ` , ` [FromServices] ` , ` [AsParameters] ` , route group, request delegate, problem details
181+
182+ #### ` area-middleware `
183+ URL rewrite, response caching/compression, session, CORS, diagnostics, static files, rate limiting, HTTP logging, forwarded headers.
184+ ** Key types:** ` CorsMiddleware ` , ` CorsPolicy ` , ` DeveloperExceptionPageMiddleware ` , ` ExceptionHandlerMiddleware ` , ` IExceptionHandler ` , ` StatusCodePagesMiddleware ` , ` StaticFileMiddleware ` , ` SessionMiddleware ` , ` ResponseCompressionMiddleware ` , ` OutputCacheOptions ` , ` IOutputCacheStore ` , ` IRateLimiterPolicy<T> ` , ` HstsMiddleware ` , ` HttpsRedirectionMiddleware ` , ` RewriteMiddleware ` , ` ForwardedHeadersMiddleware ` , ` ForwardedHeadersOptions ` , ` ResponseCachingMiddleware ` , ` IHttpLoggingInterceptor ` , ` WebSocketOptions `
185+ ** Config:** ` AddCors() ` / ` UseCors() ` , ` UseExceptionHandler() ` , ` UseDeveloperExceptionPage() ` , ` UseStaticFiles() ` , ` AddSession() ` / ` UseSession() ` , ` AddResponseCompression() ` / ` UseResponseCompression() ` , ` AddOutputCache() ` / ` UseOutputCaching() ` , ` AddRateLimiter() ` / ` UseRateLimiter() ` , ` UseHsts() ` , ` UseHttpsRedirection() ` , ` UseRewriter() ` , ` UseForwardedHeaders() ` , ` AddHttpLogging() ` / ` UseHttpLogging() `
186+ ** Concepts:** middleware pipeline, CORS policy, exception handler, static files, session state, output caching, response compression, rate limiting, HSTS, HTTPS redirect, URL rewrite, forwarded headers, X-Forwarded-For, X-Forwarded-Proto, host filtering
187+
188+ #### ` area-signalr `
189+ SignalR clients and servers, real-time communication, hub protocol.
190+ ** Key types:** ` Hub ` , ` Hub<T> ` , ` HubConnection ` , ` HubConnectionBuilder ` , ` HubCallerContext ` , ` HubConnectionContext ` , ` IHubContext<T> ` , ` IClientProxy ` , ` IGroupManager ` , ` IHubProtocol ` , ` HubException ` , ` HubOptions ` , ` RedisHubLifetimeManager `
191+ ** Config:** ` AddSignalR() ` , ` MapHub<T>() ` , ` WithUrl() ` , ` .Build() `
192+ ** Concepts:** hub, hub method, real-time, WebSocket transport, Server-Sent Events, long polling, groups, streaming, MessagePack protocol, JSON protocol, reconnect, retry policy, scale-out, Redis backplane, sticky sessions
193+
194+ #### ` area-routing `
195+ Endpoint routing, route matching, URL generation, route constraints.
196+ ** Key types:** ` EndpointDataSource ` , ` IEndpointRouteBuilder ` , ` LinkGenerator ` , ` RouteData ` , ` IRouteConstraint ` , ` IRouter ` , ` IParameterPolicy ` , ` IOutboundParameterTransformer ` , ` EndpointNameMetadata `
197+ ** Config:** ` UseRouting() ` , ` UseEndpoints() ` , ` MapFallback() ` , ` RequireHost() ` , ` WithName() ` , ` AddRouting() `
198+ ** Concepts:** route template, route pattern, route constraint (` {id:int} ` , ` {slug:regex(...)} ` ), link generation, URL generation, route values, endpoint metadata, conventional vs attribute routing, catch-all routes
199+
200+ #### ` area-dataprotection `
201+ Data Protection APIs, key management, encryption/decryption.
202+ ** Key types:** ` IDataProtectionProvider ` , ` IDataProtector ` , ` ITimeLimitedDataProtector ` , ` DataProtectionOptions ` , ` IKey ` , ` IKeyManager ` , ` IXmlRepository ` , ` DataProtectionKey ` , ` KeyManagementOptions ` , ` IAuthenticatedEncryptor `
203+ ** Config:** ` AddDataProtection() ` , ` PersistKeysToFileSystem() ` , ` PersistKeysToDbContext() ` , ` PersistKeysToStackExchangeRedis() ` , ` ProtectKeysWithCertificate() ` , ` SetApplicationName() ` , ` SetDefaultKeyLifetime() `
204+ ** Concepts:** protect/unprotect, key ring, key rotation, XML repository, purpose string, key escrow, data protector
205+
206+ #### ` area-hosting `
207+ Host builder, WebApplication, startup, server configuration.
208+ ** Key types:** ` WebApplication ` , ` WebApplicationBuilder ` , ` WebApplicationOptions ` , ` IWebHost ` , ` IWebHostBuilder ` , ` IWebHostEnvironment ` , ` IStartup ` , ` IStartupFilter ` , ` IHostingStartup ` , ` WebHostDefaults ` , ` StaticWebAssetsLoader `
209+ ** Config:** ` WebApplication.CreateBuilder() ` , ` ConfigureWebHostDefaults() ` , ` UseStartup<T>() ` , ` UseUrls() ` , ` UseContentRoot() `
210+ ** Concepts:** ` Program.cs ` , ` Startup.cs ` , minimal hosting, Generic Host, ` ASPNETCORE_URLS ` , ` ASPNETCORE_ENVIRONMENT ` , ` launchSettings.json ` , hosting startup, server addresses, host configuration
211+
212+ #### ` area-commandlinetools `
213+ CLI tools: dotnet-dev-certs, dotnet-user-jwts, dotnet-user-secrets, OpenAPI tooling.
214+ ** Key types:** ` SecretsStore ` , ` JwtStore ` , ` UserSecretsIdAttribute `
215+ ** Concepts:** ` dotnet dev-certs https --trust ` , ` dotnet user-secrets ` , ` dotnet user-jwts ` , ` dotnet sql-cache ` , ` dotnet-openapi ` , ` secrets.json ` , HTTPS dev certificate, user secrets ID
216+
217+ #### ` area-grpc `
218+ gRPC wire-up, JSON transcoding, gRPC Swagger (main library is grpc/grpc-dotnet).
219+ ** Key types:** ` GrpcJsonTranscodingServiceExtensions ` , ` GrpcSwaggerServiceExtensions `
220+ ** Config:** ` AddGrpc() ` , ` MapGrpcService<T>() ` , ` AddGrpcJsonTranscoding() ` , ` AddGrpcSwagger() `
221+ ** Concepts:** gRPC, protobuf, ` .proto ` files, gRPC-Web, JSON transcoding, gRPC Swagger, unary/streaming calls, gRPC interceptors, gRPC channels
222+
223+ #### ` area-healthchecks `
224+ Health check endpoints and publishers.
225+ ** Key types:** ` IHealthCheck ` , ` IHealthCheckPublisher ` , ` HealthCheckService ` , ` IHealthChecksBuilder ` , ` HealthCheckMiddleware ` , ` HealthCheckOptions ` , ` HealthStatus ` (Healthy, Degraded, Unhealthy)
226+ ** Config:** ` AddHealthChecks() ` , ` MapHealthChecks() ` , ` UseHealthChecks() `
227+ ** Concepts:** liveness probe, readiness probe, health status, health check publisher, health check endpoint
228+
229+ #### ` area-security `
230+ Security hardening, antiforgery, cookie policy, CSRF/XSRF protection.
231+ ** Key types:** ` IAntiforgery ` , ` AntiforgeryOptions ` , ` AntiforgeryTokenSet ` , ` AntiforgeryValidationException ` , ` RequireAntiforgeryTokenAttribute ` , ` CookiePolicyOptions `
232+ ** Config:** ` AddAntiforgery() ` , ` UseAntiforgery() ` , ` UseCookiePolicy() `
233+ ** Concepts:** antiforgery token, CSRF/XSRF, SameSite cookies, secure cookies, HTTPS enforcement, cookie policy
234+
235+ #### ` area-ui-rendering `
236+ MVC Views, Razor Pages (rendering/templates), TagHelpers, view compilation.
237+ ** Key types:** ` ViewResult ` , ` PartialViewResult ` , ` IHtmlHelper ` , ` ViewDataDictionary ` , ` TempDataDictionary ` , ` ViewComponent ` , ` ViewComponentResult ` , ` RazorPagesOptions ` , ` AnchorTagHelper ` , ` FormTagHelper ` , ` InputTagHelper ` , ` CacheTagHelper ` , ` EnvironmentTagHelper ` , ` ImageTagHelper ` , ` GlobbingUrlBuilder `
238+ ** Concepts:** ` .cshtml ` , Razor syntax, ` @model ` , ` @page ` , ` _ViewImports.cshtml ` , ` _ViewStart.cshtml ` , layout, partial view, tag helper, HTML helper, view component, runtime compilation, Razor SDK, Razor Class Library (RCL), sections
239+
240+ #### ` area-perf `
241+ Performance regressions, benchmarks, perf infrastructure.
242+ ** Concepts:** benchmark, throughput regression, latency, RPS, memory allocation, ` BenchmarkDotNet ` , perf lab, crank, bombardier
243+
244+ #### ` area-infrastructure `
245+ Build system, CI/CD, shared framework, installers.
246+ ** Concepts:** MSBuild, ` Directory.Build.props ` , ` Directory.Build.targets ` , ` eng/ ` scripts, Arcade SDK, source build, shared framework, targeting pack, reference assemblies, NuGet packaging, CI pipelines
247+
248+ #### ` area-unified-build `
249+ dotnet/dotnet unified build, source-build integration.
250+ ** Concepts:** ` dotnet/dotnet ` repo, unified build, source-build, VMR (Virtual Monolithic Repository)
251+
252+ ### Disambiguation Tips
253+
254+ When multiple areas could match, use these priorities:
255+ - ** Pipe-level I/O** (` PipeReader ` , ` PipeWriter ` , ` IDuplexPipe ` , connection handling) → ` area-networking ` , NOT ` area-middleware `
256+ - ** Kestrel config, HTTP protocol errors, TLS/SSL** → ` area-networking `
257+ - ** ` Hub ` , ` HubConnection ` , real-time** → ` area-signalr ` (even though SignalR uses WebSockets)
258+ - ** ` ComponentBase ` , ` .razor ` , render modes, JSInterop** → ` area-blazor `
259+ - ** ` .cshtml ` , TagHelpers, view compilation, ` ViewResult ` ** → ` area-ui-rendering `
260+ - ** ` MapGet ` /` MapPost ` , ` Results.* ` , endpoint filters** → ` area-minimal `
261+ - ** ` [ApiController] ` , ` Controller ` , action filters** → ` area-mvc `
262+ - ** ` [Authorize] ` , authentication schemes, JWT, OAuth** → ` area-auth `
263+ - ** ` UserManager ` , ` SignInManager ` , Identity scaffolding** → ` area-identity `
264+ - ** ` UseCors() ` , ` UseStaticFiles() ` , ` UseSession() ` , response caching** → ` area-middleware `
265+ - ** Route templates, constraints, ` LinkGenerator ` ** → ` area-routing `
266+ - ** ` IDataProtector ` , key management, protect/unprotect** → ` area-dataprotection `
267+ - ** Build failures, ` eng/ ` , packages, CI** → ` area-infrastructure `
128268
129269If you are truly unsure (confidence below ~ 40%), do ** not** add an area label.
130270Explain why in the comment instead.
0 commit comments