{"id":"CVE-2026-48121","summary":"@langchain/langgraph-checkpoint-mongodb: NoSQL parameter injection in MongoDBSaver allows cross-tenant state access","details":"@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.","aliases":["GHSA-98xf-r82g-9mhx"],"modified":"2026-09-11T03:30:30.591023013Z","published":"2026-08-04T16:49:57.680Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-943"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48121.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48121.json"},{"type":"ADVISORY","url":"https://github.com/langchain-ai/langgraphjs/security/advisories/GHSA-98xf-r82g-9mhx"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-48121"},{"type":"REPORT","url":"https://github.com/langchain-ai/langgraphjs/issues/2351"},{"type":"FIX","url":"https://github.com/langchain-ai/langgraphjs/commit/284226c7ca164b3c81fe2d9e32b10f1fc6b99a3c"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/langchain-ai/langgraphjs","events":[{"introduced":"0"},{"fixed":"284226c7ca164b3c81fe2d9e32b10f1fc6b99a3c"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.3.1"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["@langchain/vue@1.0.2","@langchain/svelte@1.0.2","@langchain/react@1.0.2","@langchain/langgraph-sdk@1.9.2","@langchain/angular@1.0.2","@langchain/vue@1.0.1","@langchain/angular@1.0.1","@langchain/vue@1.0.0","@langchain/react@1.0.0","@langchain/langgraph-cli@1.2.0","@langchain/langgraph-api@1.2.0","@langchain/angular@1.0.0","@langchain/vue@0.4.7","@langchain/svelte@0.4.7","@langchain/react@0.3.5","@langchain/angular@0.4.7","@langchain/vue@0.4.6","@langchain/svelte@0.4.6","@langchain/react@0.3.4","@langchain/langgraph-sdk@1.8.10","@langchain/angular@0.4.6","@langchain/langgraph-checkpoint-mongodb@1.3.0","@langchain/langgraph@1.2.9","@langchain/langgraph-sdk@1.8.9","@langchain/langgraph@1.2.8","@langchain/vue@0.4.5","@langchain/svelte@0.4.5","@langchain/react@0.3.3","@langchain/langgraph-sdk@1.8.8","@langchain/angular@0.4.5","@langchain/vue@0.4.4","@langchain/svelte@0.4.4","@langchain/angular@0.4.4","@langchain/vue@0.4.3","@langchain/svelte@0.4.3","@langchain/angular@0.4.3","@langchain/vue@0.4.2","@langchain/svelte@0.4.2","@langchain/react@0.3.2","@langchain/langgraph-sdk@1.8.7","@langchain/angular@0.4.2","@langchain/vue@0.4.1","@langchain/svelte@0.4.1","@langchain/react@0.3.1","@langchain/langgraph-sdk@1.8.6","@langchain/angular@0.4.1","@langchain/vue@0.4.0","@langchain/svelte@0.4.0","@langchain/react@0.3.0","@langchain/langgraph@1.2.7","@langchain/angular@0.4.0","@langchain/vue@0.3.4","@langchain/svelte@0.3.2","@langchain/react@0.2.4","@langchain/langgraph-sdk@1.8.5","@langchain/angular@0.3.3","@langchain/vue@0.3.3","@langchain/langgraph-sdk@1.8.4","@langchain/vue@0.3.2","@langchain/langgraph-sdk@1.8.3","@langchain/angular@0.3.2","@langchain/langgraph-ui@1.1.17","@langchain/langgraph-cli@1.1.17","@langchain/langgraph-api@1.1.17","@langchain/react@0.2.3","@langchain/langgraph-sdk@1.8.2","@langchain/vue@0.3.1","@langchain/svelte@0.3.1","@langchain/react@0.2.2","@langchain/langgraph@1.2.6","@langchain/langgraph-sdk@1.8.1","@langchain/angular@0.3.1","@langchain/vue@0.3.0","@langchain/svelte@0.3.0","@langchain/react@0.2.1","@langchain/langgraph@1.2.5","@langchain/langgraph-sdk@1.8.0","@langchain/angular@0.3.0","@langchain/vue@0.2.0","@langchain/svelte@0.2.0","@langchain/react@0.2.0","@langchain/langgraph@1.2.4","@langchain/langgraph-sdk@1.7.5","@langchain/angular@0.2.0","@langchain/langgraph-sdk@1.7.4","@langchain/langgraph@1.2.3","@langchain/langgraph-ui@1.1.16","@langchain/langgraph-sdk@1.7.3","@langchain/langgraph-cli@1.1.16","@langchain/langgraph-checkpoint@1.0.1","@langchain/langgraph-checkpoint-redis@1.0.4","@langchain/langgraph-api@1.1.16","@langchain/langgraph-sdk@1.7.2","@langchain/vue@0.1.3","@langchain/svelte@0.1.3","@langchain/react@0.1.3","@langchain/langgraph-sdk@1.7.1","@langchain/angular@0.1.3","@langchain/vue@0.1.2","@langchain/svelte@0.1.2","@langchain/react@0.1.2","@langchain/angular@0.1.2","@langchain/langgraph@1.2.1","@langchain/langgraph-ui@1.1.15","@langchain/langgraph-cli@1.1.15","@langchain/langgraph-checkpoint-redis@1.0.3","@langchain/langgraph-api@1.1.15","@langchain/langgraph@1.2.0","@langchain/langgraph-ui@1.1.14","@langchain/langgraph-sdk@1.6.5","@langchain/langgraph-cli@1.1.14","@langchain/langgraph-checkpoint-mongodb@1.2.0","@langchain/langgraph-api@1.1.14","@langchain/langgraph-sdk@1.6.4","@langchain/langgraph-checkpoint-postgres@1.0.1","@langchain/langgraph-ui@1.1.13","@langchain/langgraph-sdk@1.6.2","@langchain/langgraph-cli@1.1.13","@langchain/langgraph-api@1.1.13","@langchain/langgraph-sdk@1.6.3","@langchain/langgraph@1.1.5","@langchain/langgraph-ui@2.0.0","@langchain/langgraph-sdk@2.0.0","@langchain/langgraph-cli@2.0.0","@langchain/langgraph-api@2.0.0","@langchain/langgraph-sdk@1.6.1","@langchain/langgraph@1.1.4","@langchain/langgraph-sdk@1.6.0","@langchain/langgraph-ui@1.1.12","@langchain/langgraph-sdk@1.5.6","@langchain/langgraph-cli@1.1.12","@langchain/langgraph-checkpoint-redis@1.0.2","@langchain/langgraph-checkpoint-mongodb@1.1.7","@langchain/langgraph-api@1.1.12","@langchain/langgraph@1.1.3","@langchain/langgraph-checkpoint-sqlite@1.0.1","@langchain/langgraph@1.1.2","@langchain/langgraph@1.1.1","@langchain/langgraph-sdk@1.5.5","@langchain/langgraph@1.1.0","@langchain/langgraph-sdk@1.5.4","@langchain/langgraph-sdk@1.5.3","@langchain/langgraph-checkpoint-validation@1.0.9","@langchain/langgraph-sdk@1.5.2","@langchain/langgraph-sdk@1.5.1","@langchain/langgraph@1.0.15","@langchain/langgraph-ui@1.1.11","@langchain/langgraph-sdk@1.5.0","@langchain/langgraph-cli@1.1.11","@langchain/langgraph-api@1.1.11","create-langgraph@1.1.5","@langchain/langgraph@1.0.14","@langchain/langgraph-ui@1.1.10","@langchain/langgraph-sdk@1.4.6","@langchain/langgraph-cli@1.1.10","@langchain/langgraph-checkpoint-validation@1.0.8","@langchain/langgraph-checkpoint-mongodb@1.1.6","@langchain/langgraph-api@1.1.10","create-langgraph@1.1.4","@langchain/langgraph@1.0.13","@langchain/langgraph-ui@1.1.9","@langchain/langgraph-sdk@1.4.5","@langchain/langgraph-cli@1.1.9","@langchain/langgraph-checkpoint-validation@1.0.7","@langchain/langgraph-checkpoint-mongodb@1.1.5","@langchain/langgraph-api@1.1.9","create-langgraph@1.1.3","@langchain/langgraph@1.0.12","@langchain/langgraph-ui@1.1.8","@langchain/langgraph-sdk@1.4.4","@langchain/langgraph-cli@1.1.8","@langchain/langgraph-checkpoint-validation@1.0.6","@langchain/langgraph-checkpoint-mongodb@1.1.4","@langchain/langgraph-api@1.1.8","@langchain/langgraph-ui@0.0.43","@langchain/langgraph-cli@0.0.43","@langchain/langgraph-api@0.0.43","@langchain/langgraph-ui@0.0.42","@langchain/langgraph-cli@0.0.42","@langchain/langgraph-api@0.0.42","@langchain/langgraph-sdk@0.0.90","0.3.6","0.3.1","0.3.0","checkpoint==0.0.18","swarm==0.0.4","supervisor==0.0.13","cua==0.0.6","0.2.74","0.2.73","0.2.68","0.2.65","0.2.64","supervisor==0.0.11","supervisor==0.0.10","0.2.63","swarm==0.0.3","supervisor==0.0.9","0.2.53","0.2.52","swarm==0.0.1","supervisor==0.0.6","supervisor==0.0.5","0.2.44","0.2.37","0.2.31","0.2.30","0.2.26","0.2.24","0.2.22","0.2.21","0.2.18","0.2.17","0.2.15","0.2.12","0.2.11","0.2.10","0.2.9","0.2.8","0.2.7","0.2.6","0.2.4","0.2.3","0.1.5","0.1.1","0.1.0","0.0.29","0.0.28","0.0.22","0.0.8","0.0.7","0.0.6","0.0.5","0.0.4"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48121.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N"}]}