CVE-2026-63345
WysokieCVSS 8.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
Narzędzie Refitter przed wersją 2.1.2 wstawia klucze obiektu `paths` z OpenAPI bezpośrednio do atrybutów tras Refit, bez escapowania cudzysłowów. Złośliwie spreparowana ścieżka może zamknąć atrybut, interfejs i przestrzeń nazw oraz wstrzyknąć klasę z metodą `[ModuleInitializer]`, która wykonuje kod atakującego przy załadowaniu wygenerowanego zestawu. Podatność naprawiono w wersji 2.1.2.
Ocena ryzyka
Jeśli organizacja generuje klienta C# z niezaufanego lub zewnętrznego opisu OpenAPI, atakujący może doprowadzić do wykonania dowolnego kodu przy starcie aplikacji, nawet bez wywołania wygenerowanego klienta. Może to skutkować pełnym przejęciem środowiska budowy lub uruchomieniowego.
Rekomendacja
Zaktualizuj Refitter do wersji 2.1.2 lub nowszej i generuj klientów wyłącznie z zaufanych opisów OpenAPI. Rozważ weryfikację generowanego kodu przed kompilacją.
Inne podatności w Refitter
Zobacz wszystkie- CVE-2026-63346Wysokie
W Refitter przed wersją 2.1.2 nazwa parametru nagłówka w parameters[].name z in: header jest emitowana dosłownie do atrybutu [Header("<name>")] w Refit bez escapowania cudzysłowów. Spreparowany opis OpenAPI może przejść domyślną walidację bez --skip-validation i wyłamać się z pozycji listy parametrów, generując poprawny C# z klasą pliku i metodą [ModuleInitializer], która wykonuje kod atakującego przy załadowaniu skompilowanego zestawu.
- CVE-2026-63344Wysokie
Refitter przed wersją 2.1.2 wstawia klucze content-type z map `requestBody/responses` bezpośrednio do atrybutu `[Headers(...)]` Refit, bez escapowania cudzysłowów. Spreparowany klucz content-type w opisie OpenAPI może zamknąć atrybut, interfejs i przestrzeń nazw oraz wstrzyknąć klasę z metodą `[ModuleInitializer]`, która wykonuje kod atakującego przy załadowaniu zestawu. Podatność naprawiono w wersji 2.1.2.
- CVE-2026-63184Wysokie
W narzędziu dotnet refitter przed wersją 2.1.1 biblioteka NJsonSchema jest wywoływana z niebezpiecznymi domyślnymi ustawieniami rozwiązywania $ref podczas generowania interfejsów Refit z opisów OpenAPI kontrolowanych przez atakującego. Zdalne odwołania http(s) powodują żądania z hosta dewelopera lub CI i wstawianie niezaufanej treści do wygenerowanego wyniku, a bezwzględne ścieżki lokalne i przejścia ../ pozwalają na ujawnienie dowolnych plików lokalnych. Łańcuch kończy się na SSRF, zdalnym i lokalnym włączaniu plików, bez wykonania kodu.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

