Katalog CVE

CVE-2026-81027

WysokieCVSS 8.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.29%

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

Streszczenie

one-api zabezpiecza jedną z dwóch ścieżek przypinania kanału, ale nie drugą. Ścieżka z sufiksem klucza API wymaga sprawdzenia roli administratora, ale ścieżka z parametrem URL nie ma żadnego sprawdzenia roli. Trasa z tym parametrem jest chroniona tylko tokenem uwierzytelniającym, więc każde konto z ważnym tokenem może ją osiągnąć. Wartość trafia do dystrybutora, który ładuje kanał po identyfikatorze bez ograniczeń do użytkownika lub grupy, a następnie ustawia nagłówek Authorization na klucz kanału. Niskouprzywilejowane konto może przypiąć dowolny kanał, wysyłając żądania z kluczem operatora, omijając ograniczenia grup i listy dozwolonych modeli.

Ocena ryzyka

Niskouprzywilejowany użytkownik może wykorzystać klucze dostawcy skonfigurowane dla innych kanałów, co prowadzi do nieautoryzowanego użycia zasobów i potencjalnych kosztów.

Rekomendacja

Zaktualizuj one-api do wersji, która wymaga sprawdzenia roli również dla ścieżki z parametrem URL. Dodatkowo ogranicz dostęp do tras z parametrem channelid.

Powiązane podatności

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

one-api gates one of its two channel-pinning paths and not the other. middleware/auth.go permits a request to name a specific channel either through a suffix on the API key or through a URL path parameter. The suffix path is reached only after model.IsAdmin succeeds and otherwise rejects the caller, while the path-parameter branch sets the selected-channel value from c.Param("channelid") with no role check at all. The route carrying that parameter sits behind token authentication only, so any account holding a valid API token reaches it. The value flows to the distributor, which loads the channel by integer identifier with no scoping to the caller's user or group, and then sets the outbound Authorization header to that channel's stored key and directs the request at the channel's base URL. A low-privilege account can therefore pin any channel by incrementing an identifier, causing the server to make upstream requests bearing an operator-configured provider key the account was never granted, and bypassing both the per-group restriction and the channel's model allowlist.

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