Repository navigation
Description
Follow-up from #279 / #300 (chore(deps): ignore Microsoft.OpenApi major updates and document the 2.x pin).
Problem
Microsoft.OpenApi is pinned to 2.x (2.7.5, the CVE-2026-49451 / GHSA-v5pm-xwqc-g5wc fix for 2.x). The 3.x line cannot be used on .NET 10: Microsoft.AspNetCore.OpenApi on .NET 10 caps Microsoft.OpenApi below 3.0.0, and its source generator fails with CS0200 on IOpenApiMediaType.Example against 3.x.
Dependency ranges, from the published nuspecs on nuget.org:
Microsoft.AspNetCore.OpenApi |
Microsoft.OpenApi dependency |
|---|---|
| 10.0.8 (current) | 2.0.0 minimum |
| 10.0.14 (latest stable 10.x, 2026-10-30) | not re-checked; 10.0.13 was [2.12.2, 3.0.0) |
| 11.0.0-rc.3.26522.148 (latest, 2026-10-30) | not re-checked; rc.2 was [3.10.2, 4.0.0) |
There is no stable 11.0.0 yet. The project is staying on .NET 10 for now, so #300 added a Dependabot ignore for Microsoft.OpenApi major updates (.github/dependabot.yml, nuget block). That ignore has no expiry.
Scope
Upgrade Microsoft.OpenApi to a 3.x release once the project moves to .NET 11 (and Microsoft.AspNetCore.OpenApi 11.x is stable).
- Use 3.5.4 or later. 3.x versions up to 3.5.3 are affected by CVE-2026-49451; 3.5.4 is the patched release.
- Remove the
ignoreforMicrosoft.OpenApiin.github/dependabot.ymland the pin comment inTaskFlow.Api/TaskFlow.Api.csproj. - Re-check that
/openapi/v1.jsonandnpm run gen:apioutput are unchanged or intentionally changed. - Link with chore: upgrade Asp.Versioning.Mvc to v10.0.0 #165 (Asp.Versioning.Mvc v10), resolved 2026-10-30 from the nuspec:
Asp.Versioning.OpenApi10.2.3 depends onMicrosoft.OpenApi [2.7.5, 3.0.0), so adopting it on .NET 10 would block this upgrade until Asp.Versioning ships a release that accepts Microsoft.OpenApi 3.x. chore: upgrade Asp.Versioning.Mvc to v10.0.0 #165 is therefore on hold. Check for such a release before starting this issue. - Part of [Tracking] Move to .NET 11 #372 (Move to .NET 11).
Blocked by
The decision to move the project to .NET 11. If that decision is never made, this issue can be closed together with the ignore rationale.
Created with Claude Code following #300
Activity