{"id":"CVE-2026-77415","summary":"JSONata: Arbitrary Code Execution via crafted JSONata expressions","details":"JSONata is a JSON query and transformation language. Prior to 1.8.8 and 2.2.1, crafted JSONata expressions could chain several object-integrity weaknesses to execute arbitrary code. The chain could overwrite $clone to mutate objects through evaluateTransformExpression, expose and deconstruct JSONata functions or lambdas through $merge.*, replace proc.arguments.forEach used by applyProcedure, and forge internal lambda state. These primitives allowed an attacker to reach prototype getters, prototype and constructor access, and process.getBuiltinModule with child_process, executing code with the privileges of the host process. This issue is fixed in versions 1.8.8 and 2.2.1.","aliases":["GHSA-66mm-25pp-rfff"],"modified":"2026-08-27T11:30:23.786102119Z","published":"2026-08-21T21:01:09.203Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77415.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-94"]},"references":[{"type":"WEB","url":"https://github.com/jsonata-js/jsonata/releases/tag/v1.8.8"},{"type":"WEB","url":"https://github.com/jsonata-js/jsonata/releases/tag/v2.2.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77415.json"},{"type":"ADVISORY","url":"https://github.com/jsonata-js/jsonata/security/advisories/GHSA-66mm-25pp-rfff"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-77415"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/commit/47c0e58542202c705726663166dbee5fcae47d06"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/commit/4b217d514376e30cba278941298d7ba97c4a6c6e"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/commit/59e25144fc3b7125f6befd71b8a6e14e1fa610d2"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/commit/f09df8416eab8ff44926fc6527c80fb8701de159"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/commit/f174348c7fa30f271b63ddedf0767e814004bc4d"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/pull/799"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/pull/800"},{"type":"FIX","url":"https://github.com/jsonata-js/jsonata/pull/802"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/jsonata-js/jsonata","events":[{"introduced":"0"},{"introduced":"99717d99a5417c2bb9248eb7e6bde531e3642b4c"},{"fixed":"18ce8933ae1403c8732a4ef09a6b9f801381164f"},{"fixed":"06fc08cacff16315edddec9632e98c8c7342785b"},{"fixed":"47c0e58542202c705726663166dbee5fcae47d06"},{"fixed":"4b217d514376e30cba278941298d7ba97c4a6c6e"},{"fixed":"59e25144fc3b7125f6befd71b8a6e14e1fa610d2"},{"fixed":"f09df8416eab8ff44926fc6527c80fb8701de159"},{"fixed":"f174348c7fa30f271b63ddedf0767e814004bc4d"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.8.8"},{"introduced":"2.0.0"},{"fixed":"2.2.1"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v1.8.7","v2.2.0","v2.1.1","v2.1.0","v2.0.6","v2.0.5","v1.8.6","v2.0.3","v2.0.2","v2.0.1","v2.0.0","v1.8.5","v1.8.4","v1.8.3","v1.8.2","v1.8.1","v1.8.0","v1.7.0","v1.6.5","v1.6.4","v1.6.3","v1.6.2","v1.6.1","v1.6.0","v1.5.4","v1.5.3","v1.5.2","v1.5.1","v1.5","v1.4.1","v1.4","v1.3.3","v1.3.2","v1.3.1","v1.3","v1.2.6","v1.2.5","v1.2.4","v1.2.2","v1.2.1","v1.2","v1.1.1","v1.1","v1.0.10","v1.0.9","v1.0.8","v1.0.7","v1.0.6","v1.0.5","v1.0.4","v1.0.3","v1.0.2","v1.0.1","v1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-77415.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}]}