CVE-2026-63346
HighCVSS 8.6Exploitation Probability (EPSS)
Low risk29th percentile - higher than 29% of all known CVEs
Summary
In Refitter prior to 2.1.2, the header parameter name in parameters[].name with in: header is emitted verbatim into a Refit [Header("<name>")] attribute string without escaping quotation marks. An attacker-influenced OpenAPI description can pass default validation without --skip-validation and break out of the parameter-list position, generating valid C# with a file class and [ModuleInitializer] method that executes attacker code when the compiled assembly is loaded.
Risk Assessment
The generated client can contain malicious code executed at application startup even if the client is never called, leading to attacker code execution.
Recommendation
Update Refitter to version 2.1.2 or later and verify the sources of OpenAPI descriptions before generating clients.
Other vulnerabilities in Refitter
See all- CVE-2026-63345High
Refitter prior to 2.1.2 emits OpenAPI `paths` object keys verbatim into Refit route attributes without escaping quotation marks. A crafted single-line, slash-prefixed path can close the attribute, interface, and namespace and inject a top-level class with a `[ModuleInitializer]` method that executes attacker code when the generated assembly is loaded. The issue is fixed in version 2.1.2.
- CVE-2026-63344High
Refitter prior to 2.1.2 emits content-type keys from `requestBody/responses` content maps verbatim into a Refit `[Headers(...)]` attribute string without escaping quotation marks. A crafted content-type key in an OpenAPI description can break out of the attribute, interface, and namespace and inject a top-level class with a `[ModuleInitializer]` method that executes attacker code when the generated assembly is loaded. The issue is fixed in version 2.1.2.
- CVE-2026-63184High
In the refitter dotnet tool prior to 2.1.1, NJsonSchema is invoked with unsafe $ref resolution defaults when generating Refit interfaces from attacker-controlled OpenAPI descriptions. Remote http(s) references cause requests from the developer or CI host and inline untrusted content, while absolute local paths and ../ traversal allow arbitrary local-file disclosure. The chain stops at SSRF, remote file inclusion, and local file inclusion, not code execution.
Original NVD description (English source)
Refitter is a tool for generating a C# REST API client using the Refit library. Prior to 2.1.2, the header parameter name in `parameters[].name` with `in: header` is emitted verbatim into a Refit `[Header("<name>")]` attribute string without escaping quotation marks. An attacker-influenced OpenAPI description can pass default validation without `--skip-validation` and break out from the parameter-list position by closing the parameter and method syntax, attribute, interface, and namespace. The generated file can remain valid C# while containing a top-level file class with a `[ModuleInitializer]` method, which executes attacker code when the compiled assembly is loaded at application startup, even if the client is never called. Query `AliasAs` and enum/default value sinks are escaped; this flaw is in header-name attribute-string emission. The behavior was verified with Refitter 2.0.0 and .NET 8. This issue is fixed in version 2.1.2.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

