OneuptimeApplication · Hackerbay

CVE-2026-30887

CRITICAL · 9.9 CVSS v3.1 Published 2026-03-10
Fix available
A fix is available. Upgrade to 10.0.18 or later.
See remediation →
100/100
Remediation priority · Urgent
Public exploit Remotely reachable Zero-click

Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.

NVD · unedited
OneUptime is a solution for monitoring and managing online services. Prior to 10.0.18, OneUptime allows project members to run custom Playwright/JavaScript code via Synthetic Monitors to test websites. However, the system executes this untrusted user code inside the insecure Node.js vm module. By leveraging a standard prototype-chain escape (this.constructor.constructor), an attacker can bypass the sandbox, gain access to the underlying Node.js process object, and execute arbitrary system commands (RCE) on the oneuptime-probe container. Furthermore, because the probe holds database/cluster credentials in its environment variables, this directly leads to a complete cluster compromise. This vulnerability is fixed in 10.0.18.

Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.

dbcve analysis · high confidence

OneUptime versions prior to 10.0.18 execute user-provided Playwright/JavaScript code in Synthetic Monitors using the insecure Node.js vm module. Attackers escape the sandbox via prototype-chain manipulation (this.constructor.constructor) to access the process object and execute arbitrary commands, compromising the probe container and its stored database/cluster credentials.

MitigationUpgrade OneUptime to version 10.0.18 or later. Prior to deployment, verify the fix properly sandboxes code execution and review credential storage practices in probe containers.

Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.

Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.

NVD · CPE data
OneuptimeApplication
Affected:< 10.0.18

CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.

From the vector
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.

dbcve checks

Work through these to decide whether this CVE applies to you.

  1. Identify OneUptime installation version
    Check your OneUptime installation's version number. This is typically visible in the admin dashboard, Helm chart values, docker-compose.yml, or package.json if self-hosted. For managed deployments, contact your administrator or check the vendor documentation.
    Affected if The installed version is less than 10.0.18 (e.g., 10.0.17, 10.0.10, etc.)
  2. Locate the Synthetic Monitors feature
    Navigate to your OneUptime dashboard and look for Synthetic Monitors or Monitoring settings. Check if any synthetic monitors (URL/API monitors using Playwright/JavaScript code) are configured or active.
    Affected if Synthetic Monitors feature is enabled and actively used in your deployment
  3. Identify oneuptime-probe container
    Check your container orchestration (Kubernetes/Docker) for a container named 'oneuptime-probe' or similar. Inspect its running configuration and environment variables.
    Affected if A oneuptime-probe container exists and has database or cluster credentials stored as environment variables
  4. Verify vm module usage in code (if accessible)
    If you have access to the OneUptime source code or container, search for usage of Node.js 'vm' module in the synthetic monitoring code paths. Look for vm.compileFunction or vm.Script calls without sandboxing.
    Affected if The code uses the Node.js vm module without secure sandbox configuration

Your environment is affected if OneUptime version is below 10.0.18 AND the Synthetic Monitors feature is enabled, particularly if a probe container with environment variables exists in your deployment.

Generated from the published advisory. Verify against your own configuration.

Check your environment

Paste your version and any relevant configuration and it will be compared against the affected criteria above. Do not include secrets or credentials.

AI-assisted, checked against the advisory. Informational, not a guarantee.

Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.

dbcve · scoped
Upgrade available Upgrade to 10.0.18 or later
Fixed in 10.0.18
Interim mitigation

Upgrade OneUptime to version 10.0.18 or later. Prior to deployment, verify the fix properly sandboxes code execution and review credential storage practices in probe containers.

Recommended fix High confidence

10.0.18

  1. 1. Backup your OneUptime installation and database before upgrading
  2. 2. Check your current OneUptime version to confirm it is below 10.0.18
  3. 3. For containerized deployments, update your Docker image or docker-compose file to use the tag/version 10.0.18
  4. 4. For manual installations, pull the updated code from the OneUptime repository for version 10.0.18
  5. 5. Restart the oneuptime-probe container and other OneUptime services
  6. 6. Verify the upgrade was successful by checking the version in the admin dashboard
  7. 7. Test that Synthetic Monitors still function correctly with the patched vm module
Caveat Review the OneUptime 10.0.18 release notes for any configuration or feature changes; minor version upgrades typically have low breaking-change risk

Generated from the published advisory — verify against the referenced sources before acting.

Fix this in Oneuptime Scoped from the published advisory
  • Consultation3.0 h
  • Implementation4.0 h
  • Testing8.0 h
  • Review / QA3.0 h
18.0 hours of engineering $3,060
Get the upgrade done

An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $4,896.

Scan for this in your stack

Free · runs locally
dbcve dependency scanner

Check whether your project pulls in CVE-2026-30887 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.

References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.

Primary sources

Practitioner notes

Contributed

Peer-ranked notes from engineers who’ve handled CVE-2026-30887 in production — separate from our analysis above.

No notes yet

Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.

What this is

A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.

What belongs here
  • Verified mitigations, workarounds, and config changes
  • Version or environment caveats, and links to real fixes
  • No weaponised exploit code, or anything meant to cause harm
  • No spam, self-promotion, credentials, or personal data