CVE-2026-49254
NiskieCVSS 2.9Streszczenie
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-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.

