CVE-2026-104192
KrytyczneCVSS 9.6Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony atakujący może wywołać odmowę usługi i potencjalnie zdalne wykonanie kodu w kontekście konta usługi Dragonfly. Prowadzi to do utraty dostępności i potencjalnego pełnego przejęcia systemu.
Rekomendacja
Zaktualizuj Dragonfly do wersji 1.40 lub nowszej, gdy tylko będzie dostępna. W międzyczasie włącz uwierzytelnianie i ogranicz dostęp sieciowy do instancji Dragonfly.
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-49254Niskie
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.
- 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 in-memory data store built for modern application workloads. Prior to 1.40, OpaqueObjLoader::CreateStream in src/server/rdb_load.cc can associate one streamNACK with a consumer group's global PEL and a consumer-local PEL, then free the shared object when a duplicate consumer entry is rejected. Cleanup subsequently frees the same object again. In the default configuration, where Dragonfly ships with authentication disabled, an unauthenticated client can trigger the double-free by sending a crafted serialized stream to RESTORE, causing allocator corruption, denial of service, and potentially attacker-controlled code execution as the Dragonfly service account. The source fix has not yet been mapped to a published release.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

