CVE-2026-49254
NiskieCVSS 2.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 39 - wyżej niż 39% wszystkich znanych CVE
Streszczenie
Dragonfly przed wersją 2.4.4 rejestruje GET /api/v1/oauth i GET /api/v1/oauth/:id bez jwt.MiddlewareFunc() i RBAC(), a handler zwraca rekordy models.Oauth z polem client_secret w JSON. Gdy administrator skonfigurował dostawcę OAuth GitHub lub Google, nieuwierzytelniony klient sieciowy może pobrać client_secret, identyfikator klienta i URL przekierowania dostawcy.
Ocena ryzyka
Ujawnienie client_secret może umożliwić nadużycie skonfigurowanej integracji z dostawcą tożsamości, z zastrzeżeniem ograniczeń redirect URI dostawcy, co zagraża bezpieczeństwu uwierzytelniania w systemie.
Rekomendacja
Zaktualizuj Dragonfly do wersji 2.4.4 lub nowszej, która zabezpiecza handlery OAuth GET, oraz rozważ rotację ujawnionych sekretów klienta.
Inne podatności w Dragonfly
Zobacz wszystkie- CVE-2026-104192Krytyczne
Dragonfly to magazyn danych w pamięci. Przed wersją 1.40 funkcja OpaqueObjLoader::CreateStream w src/server/rdb_load.cc może powiązać jeden streamNACK z globalnym PEL grupy konsumentów i lokalnym PEL konsumenta, a następnie zwolnić współdzielony obiekt, gdy zduplikowany wpis konsumenta zostanie odrzucony. Sprzątanie następnie zwalnia ten sam obiekt ponownie. W domyślnej konfiguracji, w której Dragonfly działa z wyłączonym uwierzytelnianiem, nieuwierzytelniony klient może wywołać double-free, wysyłając spreparowany serializowany strumień do RESTORE, powodując uszkodzenie alokatora, odmowę usługi i potencjalnie wykonanie kodu kontrolowanego przez atakującego jako konto usługi Dragonfly.
- CVE-2026-111279Wysokie
Dragonfly w wersji do 2.0.2 zawiera podatność nieograniczonej alokacji pamięci, która pozwala nieuwierzytelnionym klientom wyczerpać pamięć poprzez przekazanie ujemnej wartości COUNT do HRANDFIELD, ZRANDMEMBER lub SRANDMEMBER. Atakujący może wysłać pojedyncze polecenie na klucz jednoelementowy z ogromną ujemną wartością COUNT, aby wywołać OOM killer i zakończyć działanie instancji dla wszystkich klientów.
- CVE-2026-54637Średnie
W systemie Dragonfly przed wersją 2.4.4-rc.3 domyślny nieuwierzytelniony przepływ gRPC v1 w schedulerze przyjmuje kontrolowane przez atakującego wartości PeerHost.Ip i PeerHost.DownPort przez RegisterPeerTask i ReportPeerResult. Wartości te trafiają do resource.Host, a następnie Peer.DownloadTinyFile() buduje żądanie HTTP GET bez walidacji celu, co pozwala na odczyt SSRF do usług loopback, link-local i prywatnych. Port DownPort jest ograniczony do zakresu 1024-65534, a odpowiedź do 128 bajtów może zostać umieszczona w Task.DirectPiece.
- CVE-2026-62357Wysokie
Dragonfly przed wersją 1.40.0 zawiera podatność w komendach CMS.INITBYDIM i CMS.INITBYPROW, gdzie przepełnienie arytmetyczne przy obliczaniu rozmiaru bufora prowadzi do alokacji zbyt małego bufora. Umożliwia to niezautoryzowanemu zdalnemu klientowi uszkodzenie lub ujawnienie sąsiedniej pamięci sterty oraz awarię serwera.
Oryginalny opis (angielski, źródło NVD)
Dragonfly is an open source P2P-based file distribution and image acceleration system. Prior to 2.4.4, manager/router/router.go registers GET /api/v1/oauth and GET /api/v1/oauth/:id without jwt.MiddlewareFunc() or RBAC(), while manager/handlers/oauth.go returns models.Oauth records and manager/models/oauth.go exposes Oauth.ClientSecret as client_secret in JSON. When an administrator has configured a GitHub or Google OAuth provider, an unauthenticated network client can reach GetOauth or GetOauths, load the stored models.Oauth record, and obtain the provider's client secret, client identifier, and redirect URL. The earlier GHSA-j8hf-cp34-g4j7 remediation protected the /jobs group only and did not protect these OAuth GET handlers. Disclosure of client_secret can enable abuse of the configured identity-provider integration, subject to the provider's redirect URI restrictions. This issue is fixed in 2.4.4.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

