Critical severity · published Mar 9, 2026
CVE-2026-30921
OneUptime Synthetic Monitor RCE via exposed Playwright browser object
9.9
CVSS
0.5%
EPSS
No
On KEV
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 40% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
ON
oneuptime · OneUptime
< 10.0.20 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-30921
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-30921
Exploit
https://github.com/OneUptime/oneuptime/security/advisories/GHSA-4j36-39gm-8vq8
More from oneuptime
9.9
CVE-2026-45102
OneUptime: RCE due to Node.js' vm module escape via error objects and infinite recursion
9.9
CVE-2026-33396
OneUptime has sandbox escape in Synthetic Monitor Playwright runtime allows project members to execute arbitrary commands on Probe
9.9
CVE-2026-32306
OneUptime ClickHouse SQL Injection via Aggregate Query Parameters
9.9
CVE-2026-30957
OneUptime Synthetic Monitor RCE via exposed Playwright browser object
9.9
CVE-2026-30956
OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header
