Katalog CVE

CVE-2026-75866

KrytyczneCVSS 9.1
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.23%

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

Streszczenie

Punk::OAuth2::Server w wersjach do 0.03 dla Perla wydaje tokeny dostępu poza zarejestrowanymi zakresami i typami grantów, ponieważ żadna ścieżka autoryzacji ich nie odczytuje. Klient zarejestrowany tylko dla authorization_code może poprosić o client_credentials, a żądany zakres jest podpisywany do tokenu bez porównania z rejestracją. Zarejestrowany klient może uzyskać poprawnie podpisany token z dowolnym zakresem, a serwer zasobów używający Punk::OAuth2::Checker akceptuje ten token.

Ocena ryzyka

Organizacja narażona jest na nieautoryzowany dostęp do zasobów, ponieważ klient może uzyskać token z szerszymi uprawnieniami niż zarejestrowane. Ponadto klient bez sekretu może uwierzytelnić się samym client_id, co ułatwia atak osobie znającej ten identyfikator.

Rekomendacja

Zaktualizuj Punk::OAuth2::Server do najnowszej wersji, która naprawia tę podatność. Jeśli aktualizacja nie jest dostępna, ogranicz zaufanie do klientów i wymuszaj sprawdzanie zakresów w hooku zgody.

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

Punk::OAuth2::Server versions through 0.03 for Perl issue access tokens outside a client's registered scopes and grant types because no authorization path reads them. Punk::OAuth2::Server::Store registers scopes and grant_types per client and documents both as client registration. token dispatches on the grant_type in the request body, so a client registered for authorization_code alone can ask for client_credentials, and that arm passes the requested scope straight to the minter, which signs it into the at+jwt access token. authorize copies the query scope into the authorization code record without comparing it against the registration, leaving the optional consent hook as the only check between an arbitrary scope and the issued code. redirect_uris on the same client row is read and enforced. A registered client can obtain a correctly signed token carrying any scope it names, and a resource server running Punk::OAuth2::Checker accepts that token and honours the scope. A client registered without a secret authenticates on its client_id alone, so anyone who knows that identifier can request one.

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