GraphQL Tools: Prototype pollution in mergeIncrementalResult via non-primitive path segments
mergeIncrementalResult merges an incremental GraphQL response part into an accumulated execution result by walking ['data', …incrementalResult.path] and assigning at the resolved location. setObjectKeyPath tries to reject dangerous segments with strict string equality against 'proto', 'constructor' and 'prototype' (lines 50-52 and 60-62), but it never validates that a path segment is a primitive string or number. A JSON path segment such as ["proto"] is an array object, so ["proto"] !== 'proto' …