Skip to main content

Dragonfly EUVDEUVD-2026-98775

| CVE-2026-104192 CRITICAL
Double Free (CWE-415)
2026-10-13 GitHub_M
9.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach Dragonfly network endpoint (auth disabled)
  2. Exploit
    Send crafted RESTORE stream payload
  3. Execution
    Trigger shared-NACK double-free in loader
  4. Impact
    Corrupt allocator, execute code as service account

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Double free prevention
Exploitation Conditions

Requires a Dragonfly instance earlier than 1.40 running in its default configuration with authentication disabled (no requirepass/ACL), and network reachability to the Dragonfly client port so the attacker can issue a RESTORE command. The concrete trigger is a crafted DUMP/serialized stream payload containing a consumer group whose global PEL entry is claimed by two consumers (or by none), handled in OpaqueObjLoader::CreateStream. Limiting factors that reduce real-world exposure: if authentication is enabled (requirepass or ACLs configured), the attacker must first possess valid credentials; the instance must be network-exposed to the attacker; and only versions before the 1.40 fix are affected. No user interaction is needed.

Impact

Multiple signals converge on genuinely high risk, but with important caveats. The CWE-415 double-free is confirmed by a vendor GitHub Security Advisory (GHSA-cg35-6jf4-crfh) and a fix PR (#7929) with a regression test, so the vulnerability itself is well-substantiated. The input CVSS of 9.6 uses AV:A (adjacent) with PR:N, meaning unauthenticated and low-complexity - consistent with the description's claim that Dragonfly ships with authentication disabled by default, so any client able to reach the port can issue RESTORE. However, there is a notable discrepancy: the description describes a networked data-store command (RESTORE) reachable over Dragonfly's normal client protocol, which argues for AV:N rather than AV:A - verify the intended exposure with the vendor, as AV:N would push the score higher. No EPSS score, no CISA KEV listing, and no public exploit were provided; per the precision rules this is 'no public exploit identified at time of analysis.' The fix PR includes a proof-of-corruption test (RestoreStreamConsumerGroupCorruption) that reliably triggers the condition, which lowers the bar for weaponization even though it is not itself an exploit. The real-world impact ranges from reliable denial of service (allocator corruption is a dependable crash) to potential remote code execution as the Dragonfly service account, the latter being harder and not demonstrated. Net: this is a real priority for internet- or untrusted-network-exposed Dragonfly instances running the default auth-disabled configuration, not merely a high-CVSS-but-low-real-risk issue - but the absence of EPSS/KEV/POC signals means there is no evidence of active exploitation yet.

Exploit ScenarioDerived

An attacker with network reachability to a default-configured Dragonfly instance (authentication disabled) connects and issues a RESTORE command carrying a crafted serialized stream whose consumer group has a global PEL entry claimed by two consumers (or left unclaimed). The malformed stream causes one streamNACK to be shared and freed twice during cleanup, corrupting the allocator and crashing the service, with a realistic path to code execution as the Dragonfly service account. No public exploit is identified, but the vendor's own regression test deterministically reproduces the corruption, making the trigger well-understood.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

A double-free in Dragonfly's RDB stream loader (OpaqueObjLoader::CreateStream in src/server/rdb_load.cc) lets a remote, unauthenticated attacker corrupt the allocator, crash the server, and potentially execute code as the Dragonfly service account by sending a crafted serialized stream to the RESTORE command. All Dragonfly builds prior to the 1.40 fix are affected, and exposure is highest because Dragonfly ships with authentication disabled by default (no requirepass or ACLs), so network reachability to the client port is the only real precondition (assessed as CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H; the upstream advisory scores it 9.6 with an AV:A/S:C vector). No public exploit code was identified at time of analysis and the issue is not tied to a CISA KEV entry, but the trigger is a single crafted RESTORE payload and the upstream fix has not yet been mapped to a published release, so unpatched, internet-reachable instances should be considered urgent.

RemediationAI

Primary fix: upgrade to the Dragonfly build containing commit 6c6b27a5cfd03d67eb9583ab84a0f0709e3bc77e / PR 7929 - upstream fix available (PR/commit); released patched version not independently confirmed, so verify the 1.40 or later release artifact actually includes this commit before treating an upgrade as complete and track GHSA-cg35-6jf4-crfh at https://github.com/dragonflydb/dragonfly/security/advisories/GHSA-cg35-6jf4-crfh for the mapped release. Until a confirmed patched build is deployed, the highest-value mitigation is to enable authentication (requirepass / ACLs) and bind Dragonfly to a trusted interface; this directly removes the unauthenticated trigger but requires coordinating credential distribution to all clients and will break unauthenticated ones until they are reconfigured. Complement that with network controls: firewall the Dragonfly client port (default 6379) so only application hosts can reach it, and never expose it to the internet - the trade-off is that legitimate cross-network tooling must be re-homed or tunneled. Where ACLs are supported, restrict the RESTORE command to trusted administrative principals only; this neutralizes the attack path but will block legitimate snapshot-restore workflows and any tooling that relies on RESTORE. Do not rely on authentication alone: any credential leak re-exposes the double-free, so pair it with the network restriction and prioritized patching. Also treat any instance crash or allocator abort following unexpected RESTORE traffic as a potential exploitation attempt and preserve logs and the payload for incident analysis.

Affected VersionsENISA

Dragonfly < 1.40

Affected Packages

euvd dragonfly fix: 1.40

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Dragonfly is a Redis-compatible in-memory data store that persists and restores data using RDB-format payloads; the RESTORE command (and normal snapshot loading) feeds those payloads into RdbLoaderBase::OpaqueObjLoader, where CreateStream reconstructs stream objects including consumer groups. A stream consumer group maintains two parallel structures: a group-level 'global' PEL (pending entries list) and per-consumer PELs. Each pending entry is represented by a shared streamNACK object whose consumer pointer identifies the owning consumer. The vulnerable code did not enforce the invariant that every global PEL entry be claimed by exactly one consumer: if a crafted payload listed the same entry in two consumers' PELs (or in none), the loader associated one streamNACK with both the group-global PEL and a consumer-local PEL and, when the duplicate consumer entry was rejected, freed the shared object; teardown of the remaining reference then freed the same object a second time (CWE-415, Double Free). The upstream patch (PR #7929, commit 6c6b27a5cfd03d67eb9583ab84a0f0709e3bc77e) adds an explicit ownership check that rejects an already-assigned NACK, tracks an 'assigned' counter against raxSize(cgroup->pel) to reject unclaimed global PEL entries, and removes the pre-emptive streamFreeNACK call so ownership stays with the consumer group and the object is freed once during teardown. Regression tests in src/server/rdb_test.cc verify that shared-claim, unclaimed, and duplicate consumer-PEL payloads now return 'Bad data format' while well-formed groups still load. Allocation corruption of this class is exploitable beyond a simple crash, which is why the same primitive is rated for confidentiality, integrity, and availability impact despite being triggered through a parser.

Know when Dragonfly gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.6 CRITICAL
AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

RESTORE is reachable over Dragonfly's normal network protocol (AV:N, not AV:A) and default auth-disabled gives PR:N; corruption runs within the service process so S:U, with potential RCE yielding C/I/A High.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 16:18 EUVD
CVE Published
Oct 13, 2026 - 14:42 cve.org
CRITICAL 9.6

DescriptionCVE.org

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.

Technical POC Analysis

CWE-415 double-free in OpaqueObjLoader::CreateStream in src/server/rdbload.cc during RDB stream consumer-group loading.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A critical memory-corruption vulnerability in Dragonfly (CVE-2026-104192), affecting all builds prior to the 1.40 fix, lets anyone who can reach the database's client port crash the service or potentially run code under the Dragonfly service account - and because Dragonfly ships with authentication disabled by default, most deployments are exposed as soon as that port is network-reachable. Leadership should treat every unpatched instance as a pressing risk to both data availability and confidentiality, since a single crafted RESTORE payload is enough to trigger it and no vendor-released patch has been identified at time of analysis.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations - enable authentication (requirepass/ACLs) where Dragonfly defaults leave it disabled, restrict network access to the client port to trusted hosts only, disable or rename the RESTORE command if not required, run instances under a least-privilege service account, and monitor for anomalous RESTORE payloads and unexpected service restarts.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
popular open-source Redis-alternative datastore, not yet ubiquitous enterprise footprint
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Controlled
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +48
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-24124 CRITICAL POC
9.8 Jan 22

Dragonfly P2P file distribution system versions 2.4.1-rc.0 and below have a missing authentication vulnerability allowin

CVE-2021-33564 CRITICAL POC
9.8 May 29

An argument injection vulnerability in the Dragonfly gem before 1.4.0 for Ruby allows remote attackers to read and write

CVE-2025-59353 HIGH POC
7.7 Sep 17

Dragonfly is an open source P2P-based file distribution and image acceleration system. Rated high severity (CVSS 7.7), t

CVE-2026-62357 HIGH
8.8 Aug 18

Integer overflow in Dragonfly's Count-Min Sketch implementation prior to v1.40.0 allows unauthenticated remote clients t

CVE-2026-111279 HIGH
8.7 Oct 15

Unauthenticated remote attackers can crash Dragonfly through 2.0.2 by issuing a single HRANDFIELD, ZRANDMEMBER, or SRAND

CVE-2025-59345 HIGH
7.7 Sep 17

Dragonfly is an open source P2P-based file distribution and image acceleration system. Rated high severity (CVSS 7.7), t

CVE-2026-54341 HIGH
7.5 Jun 26

Remote denial of service in DragonflyDB before 1.39.0 lets an unauthenticated attacker crash the entire server with a si

CVE-2022-41967 HIGH
7.5 Dec 28

Dragonfly is a Java runtime dependency management library. Rated high severity (CVSS 7.5), this vulnerability is remotel

CVE-2025-26268 LOW POC
3.3 Apr 17

DragonflyDB Dragonfly before 1.27.0 allows authenticated users to cause a denial of service (daemon crash) via a crafted

CVE-2025-26269 LOW POC
3.3 Apr 17

DragonflyDB Dragonfly through 1.28.2 (fixed in 1.29.0) allows authenticated users to cause a denial of service (daemon c

CVE-2025-59410 MEDIUM
5.5 Sep 17

Dragonfly is an open source P2P-based file distribution and image acceleration system. Rated medium severity (CVSS 5.5),

CVE-2026-47206 LOW
2.3 Jun 26

RESP protocol injection in Dragonfly's EvalSerializer allows an authenticated low-privilege user to embed raw CRLF seque

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy