CVE-2026-67544: Heym: Playwright Custom Code Backend RCE via `playwrightCode` Field
Heym builds and runs agentic systems and business-process automations on self-hosted infrastructure. Prior to version 0.0.71, Heym's workflow engine accepts an arbitrary Python code string in the playwrightCode field of a Playwright node. This string is written to a temporary .py file and executed directly by the backend process via subprocess.Popen([sys.executable, scriptpath]) with no sandboxing, AST validation, or role gate. Any authenticated user — including a freshly registered account — can achieve full remote code execution (RCE) on the backend host, running as the service process user (observed as root in the default Docker deployment). This issue has been patched in version 0.0.71.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Heymto a version that resolves this vulnerability.Fixed in 0.0.71
Event History
Frequently Asked Questions
Who can exploit this issue?
Any authenticated Heym user can exploit it, including a newly registered account. No elevated role or separate permission gate is required for the affected Playwright node field.
What level of access could an attacker obtain?
Injected Python runs on the backend host as the Heym service process user. In the default Docker deployment, that process was observed running as root, so exploitation may result in root-level host or container access.
Are default deployments affected?
Yes. The arbitrary code is executed without sandboxing, AST validation, or a role gate, and the default Docker deployment was observed to run the service as root.
How can I determine whether my deployment is vulnerable?
Deployments running a Heym version earlier than 0.0.71 are affected if authenticated users can create or modify Playwright nodes containing the playwrightCode field. Version 0.0.71 includes the patch.
What can be done if upgrading is not immediately possible?
Restrict access to authenticated accounts that can create or modify Playwright nodes, especially newly registered users. Review workflows for Playwright nodes using playwrightCode and treat any untrusted or unexpected code in that field as potentially malicious.