JSONata is a JSON query and transformation language. Prior to 1.8.8 and 2.2.1, the src/jsonata.js environment.lookup function used a bypassable hasOwnProperty check. Crafted expressions could use $hasOwnProperty, $spread, $string, prototype access, and $constructor to reach the object prototype and invoke process.getBuiltinModule with child_process, executing arbitrary code with the privileges of the host process. This issue is fixed in versions 1.8.8 and 2.2.1.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-94"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77414.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.8.8"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "2.0.0"
},
{
"fixed": "2.2.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "59e25144fc3b7125f6befd71b8a6e14e1fa610d2"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v1.8.8",
"range": [
{
"fixed": "18ce8933ae1403c8732a4ef09a6b9f801381164f"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "v2.2.1",
"range": [
{
"fixed": "06fc08cacff16315edddec9632e98c8c7342785b"
}
],
"source": "REFERENCES_TAG"
}
]
}