CVE-2026-63344
WysokieCVSS 8.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Organizacja generująca klienta C# z niezaufanego opisu OpenAPI może zostać zmuszona do wykonania dowolnego kodu przy starcie aplikacji, bez potrzeby wywołania klienta. Prowadzi to do przejęcia środowiska uruchomieniowego lub procesu budowy.
Rekomendacja
Zaktualizuj Refitter do wersji 2.1.2 lub nowszej i korzystaj wyłącznie z zaufanych opisów OpenAPI. Warto przeglądać wygenerowany kod 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-63345Wysokie
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.
- 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, 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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

