Refitter is a tool for generating a C# REST API client using the Refit library. Prior to 2.1.2, OpenAPI `paths`-object keys are emitted verbatim into Refit route attributes such as `[Get("<path>")]` without escaping quotation marks or restricting characters. An attacker-influenced single-line, slash-prefixed path survives default validation without `--skip-validation` and can close the attribute string, interface, and namespace while introducing a top-level file class and reopening the generated structure to keep valid C#. A `[ModuleInitializer]` method executes attacker code when an application compiles and loads the generated assembly at startup, even without calling the generated client. The enum and default value sinks are escaped and are not the vulnerable path-emission sink. The behavior was verified on Refitter 2.0.0 with .NET 8. This issue is fixed in version 2.1.2.
Metrics
Affected Vendors & Products
References
History
Tue, 03 Nov 2026 17:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Christianhelle
Christianhelle refitter |
|
| Vendors & Products |
Christianhelle
Christianhelle refitter |
Mon, 02 Nov 2026 19:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Fri, 30 Oct 2026 22:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Refitter is a tool for generating a C# REST API client using the Refit library. Prior to 2.1.2, OpenAPI `paths`-object keys are emitted verbatim into Refit route attributes such as `[Get("<path>")]` without escaping quotation marks or restricting characters. An attacker-influenced single-line, slash-prefixed path survives default validation without `--skip-validation` and can close the attribute string, interface, and namespace while introducing a top-level file class and reopening the generated structure to keep valid C#. A `[ModuleInitializer]` method executes attacker code when an application compiles and loads the generated assembly at startup, even without calling the generated client. The enum and default value sinks are escaped and are not the vulnerable path-emission sink. The behavior was verified on Refitter 2.0.0 with .NET 8. This issue is fixed in version 2.1.2. | |
| Title | Refitter: C# source injection through OpenAPI path keys | |
| Weaknesses | CWE-1116 CWE-94 |
|
| References |
|
|
| Metrics |
cvssV4_0
|
Status: PUBLISHED
Assigner: GitHub_M
Published: 2026-10-30T22:13:53.498Z
Updated: 2026-11-02T17:58:04.730Z
Reserved: 2026-07-16T14:14:24.385Z
Link: CVE-2026-63345
Updated: 2026-11-02T17:09:23.147Z
Status : Deferred
Published: 2026-10-30T23:17:13.987
Modified: 2026-11-02T19:35:33.347
Link: CVE-2026-63345
No data.