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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-415"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104192.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.40"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "6c6b27a5cfd03d67eb9583ab84a0f0709e3bc77e"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-104192.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "70747932640592046852440798490832560557",
"length": 4011
},
"id": "CVE-2026-104192-0840a935",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/dragonflydb/dragonfly/commit/6c6b27a5cfd03d67eb9583ab84a0f0709e3bc77e",
"target": {
"file": "src/server/rdb_load.cc",
"function": "RdbLoaderBase::OpaqueObjLoader::CreateStream"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"96945642161910527949439963348450675465",
"230620095244364076347752777121526078286",
"73983413868698555454988981588278094932",
"98019987284181164350258702165891068734",
"129508725008240923835562497048586233025",
"226085660989473987136899373137802372711",
"108603898629392619084853752335583394473",
"94195233543238214105912610949950834529",
"297659766211006029497824619099666076922",
"228522937454434867001642119522579307469",
"179078042154783376223618177287702548100",
"293949540968280903538352693917672011553",
"108587633537507210242609878158511307392",
"46469711253135682365638357291094311266",
"189672472467426239838828045207005823570"
],
"threshold": 0.9
},
"id": "CVE-2026-104192-5825efe5",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/dragonflydb/dragonfly/commit/6c6b27a5cfd03d67eb9583ab84a0f0709e3bc77e",
"target": {
"file": "src/server/rdb_load.cc"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"126266558296851872821442021129732622758",
"309387694038384607946984148821318057030",
"18383488015668467856844079310516349067",
"195143117881872716203820970696667162848",
"11583402942871686552239329101928941686"
],
"threshold": 0.9
},
"id": "CVE-2026-104192-8f6c6fd4",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/dragonflydb/dragonfly/commit/e4ebd87e85c011f72aa646942ef87b8703d3443b",
"target": {
"file": "src/server/db_slice.cc"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "95380582024133472853688761177186158628",
"length": 554
},
"id": "CVE-2026-104192-af9ef26d",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/dragonflydb/dragonfly/commit/e4ebd87e85c011f72aa646942ef87b8703d3443b",
"target": {
"file": "src/server/db_slice.cc",
"function": "AccountObjectMemory"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"197674841751952715787789723882640382912",
"179334845802276978621533515858728889448",
"18815629224863233378121120885859628360"
],
"threshold": 0.9
},
"id": "CVE-2026-104192-da4ec3f5",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/dragonflydb/dragonfly/commit/6c6b27a5cfd03d67eb9583ab84a0f0709e3bc77e",
"target": {
"file": "src/server/rdb_test.cc"
}
}
]
"2026-10-28T11:03:37Z"