What happened
In the controlled validation, a remote WebSocket user prompts RealtimeAgent to select execute_python_code, and the toolkit runs the model-produced Python in the service environment.
2026-09-30
HighPrimaryAnalysis of CVE-2026-51856, a controlled demonstration in which an AgentScope RealtimeAgent exposed to execute_python_code ran model-selected Python without another approval boundary.
What happened
In the controlled validation, a remote WebSocket user prompts RealtimeAgent to select execute_python_code, and the toolkit runs the model-produced Python in the service environment.
Why it matters
Demonstrated arbitrary Python execution in the service environment of a deliberately exposed AgentScope RealtimeAgent; no real-world victim impact or in-the-wild exploitation was reported.
Missing authorization check
Independent, payload-bound authorization before execute_python_code runs, combined with process isolation and separate gates for filesystem, credential, network, deployment, and infrastructure effects.
Would PP block it?
The prompt can still influence the model, but model selection alone does not satisfy the execution boundary. Without a matching receipt for the exact Python operation, identity, runtime, and expiry, the tool call fails closed.
Incident analysis
2026-09-30
CVE-2026-51856 is published with the validated RealtimeAgent execution path and affected-version notes.
2026-10-01
The CVE record is updated with references to the public disclosure and AgentScope issue.
Authorization boundary
This incident is categorized as Tool execution / MCP. The relevant Permission Protocol gate is Tool-Call Gate. The read is conditional: the block only applies where the real action boundary is routed through a gate.
A Tool-Call Gate can hold execute_python_code until a separately authenticated signer approves the exact canonical operation and payload.
Start small
This incident maps to Tool-Call Gate. Start with the boundary that controls the actual action, then require a signed receipt before execution.