Podatność w bibliotece Pathway (do wersji 0.31.1 włącznie) umożliwia nieuwierzytelnionemu atakującemu wywołanie odmowy usługi (DoS) poprzez przesłanie specjalnie spreparowanego wzorca glob do publicznych endpointów HTTP. Brak ograniczeń długości wzorca oraz brak memoizacji rekurencyjnego algorytmu dopasowującego prowadzą do wykładniczego wzrostu zużycia CPU.
▸ Pokaż oryginał (EN)
Pathway through 0.31.1, fixed in commit d09722e, document store applies a caller-supplied glob pattern to indexed document paths using a hand-written recursive matcher that branches two ways on each ** token without memoization, giving exponential worst-case complexity. The filepath_globpattern value is taken from the body of the unauthenticated HTTP endpoints /v1/retrieve, /v1/inputs and /v2/answer and compiled into a filter evaluated once per indexed document, with no length or **-count limit. A remote unauthenticated attacker can submit a short pattern containing many ** tokens to consume CPU for tens of seconds per request, and a small number of requests denies service.
Document store w Pathway stosuje dostarczony przez wywołującego wzorzec glob do indeksowanych ścieżek dokumentów przy użyciu ręcznie napisanego rekurencyjnego algorytmu, który dla każdego tokenu '**' rozgałęzia się dwukierunkowo bez zapamiętywania wyników pośrednich (brak memoizacji). Wartość parametru 'filepath_globpattern' pochodzi z treści żądań do nieuwierzytelnionych endpointów HTTP: '/v1/retrieve', '/v1/inputs' oraz '/v2/answer'. Nie istnieje żadne ograniczenie długości wzorca ani liczby tokenów '**', a filtr jest obliczany raz dla każdego zaindeksowanego dokumentu. Atakujący może przesłać krótki wzorzec zawierający wiele tokenów '**', co powoduje zużycie CPU przez dziesiątki sekund na jedno żądanie, a już niewielka liczba takich żądań skutecznie blokuje usługę.
Nieuwierzytelniony zdalny atakujący może doprowadzić do odmowy usługi (DoS) poprzez wyczerpanie zasobów CPU serwera, uniemożliwiając obsługę prawidłowych żądań.
Należy zaktualizować Pathway do wersji zawierającej commit d09722eef03fd94bba701836eb4c7fbfa3d3b88e lub nowszej. Szczegóły dostępne w referencjach producenta (GitHub issue #241, pull request #250).
Pathway w wersjach do 0.31.1 włącznie (poprawka wprowadzona w commicie d09722e)
Podatność dotyczy wyłącznie nieuwierzytelnionych endpointów HTTP, co znacząco obniża próg ataku — nie jest wymagana żadna forma autoryzacji. Sklasyfikowana jako CWE-407 (Inefficient Algorithmic Complexity).
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X