CVE-2026-48121
Full vulnerability record from the local CVENow database.
Description
@langchain/langgraph-checkpoint-mongodb provides a LangGraph.js CheckpointSaver implementation that uses MongoDB for storage. Versions 1.3.0 and below are vulnerable to NoSQL injection: checkpoint identifiers (thread_id, checkpoint_ns, checkpoint_id) from config.configurable are passed into MongoDB find() queries in MongoDBSaver.getTuple() without type enforcement. If an attacker supplies an object payload (such as MongoDB operators $gt or $ne) instead of a string, it can be interpreted as a query operator, bypassing thread scoping and leaking checkpoints, including pending writes, across tenants. Applications are at risk if they forward untrusted input into config.configurable without coercing it to strings or validating it against a schema, particularly in multi-tenant or user-isolated setups. Apps that only use server-issued, string-typed identifiers with schema validation rejecting non-string fields are not affected. This issue has been fixed in version 1.3.1.
View original CVE JSON
{
"id": "CVE-2026-48121",
"sourceIdentifier": "[email protected]",
"published": "2026-08-04T17:16:55.267",
"lastModified": "2026-10-24T16:10:00.153",
"vulnStatus": "Awaiting Analysis",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "@langchain/langgraph-checkpoint-mongodb provides a LangGraph.js CheckpointSaver implementation that uses MongoDB for storage. Versions 1.3.0 and below are vulnerable to NoSQL injection: checkpoint identifiers (thread_id, checkpoint_ns, checkpoint_id) from config.configurable are passed into MongoDB find() queries in MongoDBSaver.getTuple() without type enforcement. If an attacker supplies an object payload (such as MongoDB operators $gt or $ne) instead of a string, it can be interpreted as a query operator, bypassing thread scoping and leaking checkpoints, including pending writes, across tenants. Applications are at risk if they forward untrusted input into config.configurable without coercing it to strings or validating it against a schema, particularly in multi-tenant or user-isolated setups. Apps that only use server-issued, string-typed identifiers with schema validation rejecting non-string fields are not affected. This issue has been fixed in version 1.3.1."
},
{
"lang": "es",
"value": "Langchain/langgraph-checkpoint-mongodb proporciona una implementación de CheckpointSaver de LangGraph.js que utiliza MongoDB para el almacenamiento. Las versiones 1.3.0 e inferiores son vulnerables a la inyección NoSQL: los identificadores de punto de control (thread_id, checkpoint_ns, checkpoint_id) de config.configurable se pasan a las consultas find() de MongoDB en MongoDBSaver.getTuple() sin aplicación de tipo. Si un atacante suministra una carga útil de objeto (como los operadores de MongoDB $gt o $ne) en lugar de una cadena, puede interpretarse como un operador de consulta, eludiendo el alcance del hilo y filtrando puntos de control, incluidas las escrituras pendientes, entre inquilinos. Las aplicaciones están en riesgo si reenvían entradas no confiables a config.configurable sin convertirlas a cadenas o validarlas contra un esquema, particularmente en configuraciones multiinquilino o aisladas por usuario. Las aplicaciones que solo usan identificadores de tipo cadena emitidos por el servidor con validación de esquema que rechaza campos que no son cadenas no se ven afectadas. Este problema ha sido solucionado en la versión 1.3.1."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "langchain-ai",
"product": "langgraphjs",
"versions": [
{
"version": "< 1.3.1",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N",
"baseScore": 6.7,
"baseSeverity": "MEDIUM",
"attackVector": "ADJACENT_NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "REQUIRED",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 1.5,
"impactScore": 5.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-08-04T19:15:56.587064Z",
"id": "CVE-2026-48121",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-943"
}
]
}
],
"references": [
{
"url": "https://github.com/langchain-ai/langgraphjs/commit/284226c7ca164b3c81fe2d9e32b10f1fc6b99a3c",
"source": "[email protected]"
},
{
"url": "https://github.com/langchain-ai/langgraphjs/issues/2351",
"source": "[email protected]"
},
{
"url": "https://github.com/langchain-ai/langgraphjs/security/advisories/GHSA-98xf-r82g-9mhx",
"source": "[email protected]"
}
]
}