CVE-2026-72888
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
Net::OAuth przed wersją 0.32 dla Perla pozwala na wyczerpanie pamięci poprzez nieograniczone buforowanie nieudanych ładowań modułów w smart_require. smart_require przechowuje wyniki w globalnym hashu procesu bez limitu i bez usuwania, zachowując wpis dla każdej nazwy klasy, o którą zapytano, w tym nazw, które nie załadowały się, ponieważ wartość zwracana przez nieudane eval jest przechowywana przed sprawdzeniem błędu. Klucz pochodzi z sieci po stronie serwera: _signature_method_class buduje nazwę klasy z parametru signature_method przychodzącej wiadomości, a verify rozwiązuje ją przed sprawdzeniem podpisu. Zdalny klient wybiera zarówno liczbę wpisów, jak i długość każdego klucza. W trwałym serwerze hash rośnie przez cały czas życia procesu roboczego, aż do wyczerpania pamięci. Limity rozmiaru nagłówka ograniczają długość klucza w ścieżce nagłówka Authorization, ale nie w treści POST.
Ocena ryzyka
Ryzyko polega na możliwości zdalnego wyczerpania pamięci serwera, co prowadzi do niedostępności usługi (denial of service). Atakujący może wysyłać wiele żądań z różnymi parametrami, powodując niekontrolowany wzrost zużycia pamięci.
Rekomendacja
Zaleca się aktualizację Net::OAuth do wersji 0.32 lub nowszej, która zawiera poprawkę ograniczającą buforowanie. Należy również rozważyć wprowadzenie limitów na rozmiar i liczbę żądań oraz monitorowanie zużycia pamięci.
Oryginalny opis (angielski, źródło NVD)
Net::OAuth versions before 0.32 for Perl allow memory exhaustion via unbounded caching of failed module loads in smart_require. smart_require stores results in a process-global hash with no bound and no eviction, and keeps an entry for every class name it is asked about, including names that failed to load, because the return value of the failed eval is stored before the error is checked. The key comes off the wire on the server side: _signature_method_class builds the class name from the signature_method parameter of the incoming message, and verify resolves it before any signature is checked. A remote client chooses both how many entries are created and how long each key is. In a persistent server the hash grows for the life of the worker process until it exhausts memory. Header size limits bound the key length on the Authorization header path, but not on a POST body.

