CVE-2026-63344
HighCVSS 8.6Exploitation Probability (EPSS)
Low risk29th percentile - higher than 29% of all known CVEs
Summary
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.
Risk Assessment
An organization generating a C# client from an untrusted OpenAPI description may be forced to execute arbitrary code at application startup without calling the client. This leads to compromise of the runtime or build environment.
Recommendation
Upgrade Refitter to version 2.1.2 or later and use only trusted OpenAPI descriptions. Review generated code before compilation.
Other vulnerabilities in Refitter
See all- CVE-2026-63346High
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.
- 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-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, content-type keys in the content maps of `requestBody/responses` are emitted verbatim into a Refit `[Headers("Accept: <ct>", "Content-Type: <ct>")]` attribute string without escaping quotation marks. A crafted content-type key in an attacker-influenced OpenAPI description survives default validation without `--skip-validation`, breaks out of the attribute string and enclosing interface and namespace, and can introduce a top-level file class while leaving valid generated C#. A `[ModuleInitializer]` method in that class executes attacker code when the generated assembly is loaded at application startup, without requiring a call to the client. 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

