CVE-2026-100350
ŚrednieCVSS 5.3Streszczenie
W bibliotece kin-openapi od wersji 0.145.0 do 0.146.0 funkcja openapi3filter wielokrotnie wywołuje regexp.MustCompile dla tego samego wyrażenia regularnego nazwy parametru w pętli po kluczach zapytania w urlValuesDecoder.DecodeObject. Nieuwierzytelniony zdalny klient może wysłać żądanie z wieloma niepowiązanymi kluczami zapytania, powodując nadmierne zużycie zasobów proporcjonalne do liczby kluczy. Problem nie jest atakiem ReDoS — wynika z ponownej kompilacji niezmiennego wyrażenia w pętli.
Ocena ryzyka
Nieuwierzytelniony atakujący może wywołać nadmierne zużycie CPU i pamięci na serwerze, prowadząc do odmowy usługi. Ryzyko dotyczy usług używających kin-openapi do walidacji żądań z parametrami deepObject.
Rekomendacja
Zaktualizuj bibliotekę kin-openapi do wersji 0.146.0 lub nowszej. Do czasu aktualizacji rozważ ograniczenie liczby kluczy zapytania akceptowanych przez punkty końcowe używające parametrów deepObject.
Inne podatności w kin-openapi
Zobacz wszystkie- CVE-2026-100353Wysokie
kin-openapi, projekt Go do obsługi plików OpenAPI, w wersjach od 0.136.0 do 0.149.0 nie sprawdza wartości nil dla schematów tablicowych OpenAPI 3.1 w trzech ścieżkach dekodera openapi3filter. Nieuwierzytelniony klient zdalny może wywołać deterministyczny panic nil-pointer poprzez parametr zapytania tablicowego, parametr deepObject lub treść żądania form-urlencoded.
- CVE-2026-97394Wysokie
kin-openapi, projekt Go do obsługi plików OpenAPI, w wersjach od 0.136.0 do 0.143.0 akceptuje schematy tablicowe OpenAPI 3.1 bez słowa kluczowego items i następnie dereferencjonuje wartość nil Schema.Items podczas dekodowania żądań i odpowiedzi. Zdalny nieuwierzytelniony klient może wywołać deterministyczny panic nil-pointer podczas ValidateRequest lub ValidateResponse.
- CVE-2026-100352Wysokie
W projekcie kin-openapi przed wersją 0.148.0 ścieżka walidacji OpenAPI 3.1 przekazuje wartości NaN i nieskończoności z YAML do biblioteki santhosh-tekuri/jsonschema v6.0.2 bez zastosowania istniejących zabezpieczeń przed liczbami nieskończonymi. Zdalny nieuwierzytelniony klient może wysłać treść żądania application/yaml lub application/x-yaml zawierającą .nan, .inf lub -.inf do operacji z ograniczeniem numerycznym, powodując utworzenie i wyłuskanie nil big.Rat podczas ValidateRequest.
- CVE-2026-100351Wysokie
W kin-openapi od wersji 0.144.0 do 0.147.0 openapi3filter.ValidationHandler waliduje operację wybraną ze zdekodowanego URL.Path, podczas gdy router gorilla/mux skonfigurowany z UseEncodedPath może skierować żądanie do innej operacji wybranej z URL.RawPath. Gdy publiczna trasa dokładna i chroniona trasa parametryzowana używają tej samej metody i nakładają się po dekodowaniu, nieuwierzytelnione żądanie zawierające zakodowany separator ścieżki może zostać zwalidowane jako publiczne, a następnie skierowane do chronionego handlera bez wywołania AuthenticationFunc.
- CVE-2026-100348Średnie
W bibliotece kin-openapi przed wersją 0.145.0 funkcja openapi3.Loader może wyłuskać nil SchemaRef.Value podczas rozwiązywania samoodwołującego się odwołania JSON w additionalProperties. Wczytanie dokumentu OpenAPI kontrolowanego przez atakującego przez LoadFromData, LoadFromFile lub LoadFromURI osiąga resolveComponent przed walidacją dokumentu i może wywołać panikę procesu ładującego.
- CVE-2026-100347Średnie
W bibliotece kin-openapi przed wersją 0.145.0 funkcja openapi3filter.ValidationHandler używa routera routers/legacy, który przekazuje nieobsługiwaną lub niekanoniczną metodę HTTP dla istniejącej ścieżki statycznej do openapi3.PathItem.GetOperation. Domyślna gałąź GetOperation wywołuje panikę przed uwierzytelnieniem, więc nieuwierzytelniony zdalny klient może wielokrotnie wysyłać metody takie jak PROPFIND lub małe litery get, powodując przerywanie połączeń i wzrost logów ze stosem wywołań.
- CVE-2026-73501Krytyczne
kin-openapi to projekt Go do obsługi plików OpenAPI. Przed wersją 0.144.0, ValidationHandler.Load() w openapi3filter/validation_handler.go po cichu zastępuje nil AuthenticationFunc funkcją NoopAuthenticationFunc, która zwraca nil bez sprawdzania poświadczeń. To podstawienie powoduje, że każde wymaganie bezpieczeństwa OpenAPI jest spełnione dla nieuwierzytelnionych żądań, gdy aplikacja polega na ValidationHandler jako middleware egzekwującym. No-op callback uniemożliwia osiągnięcie ścieżki fail-closed ErrAuthenticationServiceMissing i przekazuje żądanie do chronionych handlerów, które mogą wymagać klucza API, tokena OAuth lub innego schematu bezpieczeństwa. Problem naprawiono w wersji 0.144.0.
- CVE-2026-100354Wysokie
kin-openapi, projekt Go do obsługi plików OpenAPI, w wersjach przed 0.149.0 nie wykrywa cykli w schematach allOf, anyOf lub oneOf odwołujących się do schematu nadrzędnego podczas walidacji żądań i odpowiedzi. Prowadzi to do nieograniczonej rekurencji i przepełnienia stosu, które kończy proces i nie może być przechwycone przez recover.
- CVE-2026-100349Wysokie
W kin-openapi przed wersją 0.146.0 funkcja openapi3filter.ValidateResponse przekazuje nil schemat nagłówka odpowiedzi do decodeValue, gdy dokument OpenAPI deklaruje nagłówek z content zamiast schema. Dokument przechodzi walidację, ale każda walidacja odpowiedzi dla dotkniętej operacji wyłuskuje nil schemat i powoduje panikę, nawet gdy odpowiedź nie zawiera zadeklarowanego nagłówka.
- CVE-2026-77354Wysokie
kin-openapi w wersjach od 0.124.0 do 0.142.0 ma podatność na atak DoS. Funkcja sliceMapToSlice konwertuje kontrolowane przez atakującego indeksy z parametru deepObject na gęstą tablicę, co może prowadzić do alokacji wielogigabajtowej pamięci i wywołania OOM lub restartu aplikacji.
Oryginalny opis (angielski, źródło NVD)
kin-openapi is a Go project for handling OpenAPI files. From 0.145.0 until 0.146.0, openapi3filter repeatedly calls regexp.MustCompile for the same parameter-name regular expression inside the per-query-key loop in urlValuesDecoder.DecodeObject used to decode a deepObject query parameter. An unauthenticated remote client can send an affected endpoint a request containing many unrelated query keys, causing ValidateRequest to perform work and allocations proportional to the attacker-controlled key count for every deepObject parameter. The expression itself is fixed and this is not regular expression denial of service; the resource consumption comes from loop-invariant recompilation. This issue is fixed in version 0.146.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

