Katalog CVE

CVE-2026-62303

ŚrednieCVSS 5.9
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.31%

Percentyl 24 - wyżej niż 24% wszystkich znanych CVE

Streszczenie

Pistache (biblioteka REST w C++) w wersjach 0.0.5–0.4.26 używa std::regex_replace() z wyrażeniem //+ do zwijania kolejnych ukośników w SegmentTreeNode::sanitizeResource(). Przy libstdc++ ścieżka z dziesiątkami tysięcy kolejnych ukośników powoduje głęboką rekurencję, wyczerpanie stosu i awarię procesu.

Ocena ryzyka

Nieuwierzytelniony zdalny atakujący może wywołać odmowę usługi (crash procesu), jeśli wdrożenie dopuszcza wystarczająco długie ścieżki żądań (np. podniesiony maxRequestSize lub długie ścieżki przez frontend).

Rekomendacja

Ogranicz maksymalną długość ścieżki żądań i rozważ wdrożenie poprawki źródłowej zastępującej rekurencyjną normalizację iteracyjną. Do czasu wydania poprawki monitoruj i blokuj żądania z nadmierną liczbą kolejnych ukośników.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

Pistache is a high-performance REST toolkit written in C++. From 0.0.5 through 0.4.26, `SegmentTreeNode::sanitizeResource()` in `src/server/router.cc` uses `std::regex_replace()` with the `//+` expression to collapse consecutive slashes. With libstdc++, a path containing tens of thousands of consecutive slash characters can recurse deeply enough to exhaust the stack and crash the process. `Router::route()`, `Router::addRoute()` and `Router::removeRoute()` reach this normalization. Unauthenticated remote exploitation is conditional on a deployment allowing sufficiently long request paths, such as by increasing `Endpoint::Options::maxRequestSize()` above the default 4096-byte limit or forwarding long paths through a front end. Direct router API use is also affected when attacker-controlled route or resource strings reach the normalizer. Native builds reproduced a crash around 24,000 consecutive slashes, although the exact threshold depends on the stack and standard library; the demonstrated failure is stack exhaustion rather than uninitialized-memory use. A source fix replaces recursive regular-expression normalization with an iterative pass, but no containing repository release was verified as of time of publication.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS