GHSA-mp23-7m6r-jfw4: 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.
Affected Software
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 freshly registered account. No elevated role or separate approval is required.
What access does an attacker need to execute code?
The attacker needs network access to the Heym instance and valid authentication. They can supply Python through the Playwright node's playwrightCode field, which the backend executes.
Are default Docker deployments especially at risk?
Yes. The backend code runs with the service process user's privileges, which were observed to be root in the default Docker deployment. Successful exploitation can therefore provide root-level code execution in that deployment.
Which versions are affected and what fixes the issue?
Versions before 0.0.71 are affected. Upgrade to version 0.0.71, which patches the issue.