CVE-2026-30921 OneUptime Synthetic Monitor RCE via exposed Playwright browser object
Low-privileged users can execute arbitrary code on the probe host by injecting malicious Playwright scripts into synthetic monitors.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-30921?
CVE-2026-30921 is a critical code injection vulnerability in oneuptime, published on 9 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
OneUptime is a solution for monitoring and managing online services. Prior to 10.0.20, OneUptime Synthetic Monitors allow low-privileged project users to submit custom Playwright code that is executed on the oneuptime-probe service. In the current implementation, this untrusted code is run inside Node's vm and is given live host Playwright objects such as browser and page. This creates a distinct server-side RCE primitive: the attacker does not need the classic this.constructor.constructor(...) sandbox escape. Instead, the attacker can directly use the injected Playwright browser object to reach browser.browserType().launch(...) and spawn an arbitrary executable on the probe host/container. This vulnerability is fixed in 10.0.20.
Weakness: CWE-749
Which versions are affected by CVE-2026-30921?
2 open source packages ship an affected version, including @oneuptime/common. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
@oneuptime/common npm | All versions | 10.0.20 |
@oneuptime/common npm | All versions | 10.0.20 |
Products include Hackerbay Oneuptime.
How do I fix CVE-2026-30921?
Upgrade @oneuptime/common to 10.0.20 or later.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2026-30921 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-30921 exists.
Other vulnerabilities in oneuptime
- CVE-2026-33396 Code injection in oneuptime
- CVE-2026-32306 OneUptime ClickHouse SQL Injection via Aggregate Query Parameters
- CVE-2026-30956 OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header
- CVE-2026-30957 OneUptime Synthetic Monitor RCE via exposed Playwright browser object
- CVE-2026-30887 OneUptime Affected by Unsandboxed Code Execution in Probe Allows Any Project Member to Achieve RCE
Sources
Also known as GHSA-4j36-39gm-8vq8.