CVE-2026-107909
Una escritura fuera de límites basada en el montón (heap) en la función ws_read_frame (src/bolt/ws.c) y la función buffer_apply_mask (src/bolt/buffer.c) en FalkorDB anterior a 4.20.0 permite que un atacante remoto no autenticado cause una denegación de servicio y posiblemente corrompa la memoria del montón al enviar un marco WebSocket con una longitud de carga útil extendida de 64 bits al puerto Bolt.
Leer descripción completaMostrar menos
La longitud de la carga útil no está limitada, y la única comprobación de límites en buffer_apply_mask es un ASSERT(), que se compila fuera en compilaciones de distribución, por lo que la función aplica XOR a la memoria más allá del final del búfer de recepción con la clave de máscara suministrada por el atacante. Solo las implementaciones que habilitan el extremo Bolt (BOLT_PORT, deshabilitado de forma predeterminada) se ven afectadas.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Versión: 4.0
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- Puntuación base: 8.8
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.44%
- Percentil entre todas las CVEs puntuadas: 36
- Fecha de la puntuación: 14/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
🎯 Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1190Exploit Public-Facing Applicationinitial access85 % - Impacto principal
T1499.004Application or System Exploitationimpact90 % - Impacto secundario
T1565.001Stored Data Manipulationimpact75 %
Vulnerabilidad remota sin autenticación en WebSocket (AV:N, PR:N, UI:N) explotable contra servicio expuesto (Bolt). Out-of-bounds write causa DoS y corrupción de memoria.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
🛡️ Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-787
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-107909",
"cveTags": [],
"metrics": {
"cvssMetricV31": [
{
"type": "Secondary",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 9.1,
"attackVector": "NETWORK",
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "NONE"
},
"impactScore": 5.2,
"exploitabilityScore": 3.9
}
],
"cvssMetricV40": [
{
"type": "Secondary",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 8.8,
"Automatable": "NOT_DEFINED",
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"subIntegrityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "HIGH",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
"affectedData": [
{
"cpes": [
"cpe:2.3:a:falkordb:falkordb:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/FalkorDB/FalkorDB",
"vendor": "FalkorDB",
"modules": [
"Bolt protocol endpoint"
],
"product": "FalkorDB",
"versions": [
{
"status": "affected",
"version": "0",
"lessThan": "4.20.0",
"versionType": "semver"
}
],
"programFiles": [
"src/bolt/ws.c",
"src/bolt/buffer.c"
],
"collectionURL": "https://github.com/FalkorDB/FalkorDB",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "ws_read_frame"
},
{
"name": "buffer_apply_mask"
}
]
}
]
}
],
"published": "2026-10-09T06:17:12.303",
"references": [
{
"url": "https://github.com/FalkorDB/FalkorDB/commit/0b11a00b34b25c4d4fdfe55f0a35c8a00593bd7d",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
},
{
"url": "https://github.com/FalkorDB/FalkorDB/pull/2170",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
},
{
"url": "https://github.com/FalkorDB/FalkorDB/releases/tag/v4.20.0",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "33c584b5-0579-4c06-b2a0-8d8329fcab9c",
"description": [
{
"lang": "en",
"value": "CWE-787"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "A heap-based out-of-bounds write in the ws_read_frame function (src/bolt/ws.c) and the buffer_apply_mask function (src/bolt/buffer.c) in FalkorDB before 4.20.0 allows a remote unauthenticated attacker to cause a denial of service and possibly corrupt heap memory by sending a WebSocket frame with a 64-bit extended payload length to the Bolt port. The payload length is not bounded, and the only bounds check in buffer_apply_mask is an ASSERT(), which is compiled out in release builds, so the function XORs memory beyond the end of the receive buffer with the attacker-supplied mask key. Only deployments that enable the Bolt endpoint (BOLT_PORT, disabled by default) are affected."
}
],
"lastModified": "2026-10-09T06:17:12.413",
"sourceIdentifier": "33c584b5-0579-4c06-b2a0-8d8329fcab9c"
}