Description
SandboxJS is a JavaScript sandboxing library. Prior to 0.8.35, SandboxJS timers have an execution-quota bypass. A global tick state (`currentTicks.current`) is shared between sandboxes. Timer string handlers are compiled at execution time using that global tick state rather than the scheduling sandbox's tick object. In multi-tenant / concurrent sandbox scenarios, another sandbox can overwrite `currentTicks.current` between scheduling and execution, causing the timer callback to run under a different sandbox's tick budget and bypass the original sandbox's execution quota/watchdog. Version 0.8.35 fixes this issue.
Published: 2026-03-18
Score: 4.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Execution-Quota Bypass
Action: Patch
AI Analysis

Impact

SandboxJS timers were implemented such that a global tick state (`currentTicks.current`) is shared across all sandboxes. Timer string handlers are compiled at execution time using this global tick value instead of the individual sandbox’s tick object. When multiple sandboxes are active concurrently, a sandbox can overwrite the global tick between scheduling a timer and its execution, causing the timer callback to run under a different sandbox’s tick budget and thereby bypass the original sandbox’s execution quota or watchdog. This race condition (CWE-362) allows the affected sandbox to execute code beyond its intended resource limits, potentially leading to denial‑of‑service or sandbox escape within the JavaScript environment.

Affected Systems

The vulnerability affects the JavaScript sandboxing library SandboxJS from vendor nyariv. All releases prior to version 0.8.35 are impacted. The affected version range is 0.8.33, 0.8.34, and earlier.

Risk and Exploitability

The CVSS score is 4.8 (medium), reflecting the partial impact on security provided by a sandboxed environment. EPSS indicates a very low probability of exploitation (<1%). The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector involves a multi‑tenant or concurrent sandbox scenario where an attacker can create another sandbox that manipulates the shared tick state. Successful exploitation would allow the attacker to cause another sandbox to execute code beyond its allocated quota, potentially resulting in resource exhaustion or privilege escalation within the sandboxed context. The requirement for concurrent sandbox activity reduces the overall threat level, but the impact remains significant if the conditions are met.

Generated by OpenCVE AI on March 19, 2026 at 20:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade SandboxJS to version 0.8.35 or later.

Generated by OpenCVE AI on March 19, 2026 at 20:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-7p5m-xrh7-769r SandboxJS has an execution-quota bypass (cross-sandbox currentTicks race) in SandboxJS timers
History

Thu, 19 Mar 2026 19:30:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:nyariv:sandboxjs:*:*:*:*:*:node.js:*:*
Metrics cvssV3_1

{'score': 4.7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}


Thu, 19 Mar 2026 16:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 19 Mar 2026 09:45:00 +0000

Type Values Removed Values Added
First Time appeared Nyariv
Nyariv sandboxjs
Vendors & Products Nyariv
Nyariv sandboxjs

Wed, 18 Mar 2026 21:30:00 +0000

Type Values Removed Values Added
Description SandboxJS is a JavaScript sandboxing library. Prior to 0.8.35, SandboxJS timers have an execution-quota bypass. A global tick state (`currentTicks.current`) is shared between sandboxes. Timer string handlers are compiled at execution time using that global tick state rather than the scheduling sandbox's tick object. In multi-tenant / concurrent sandbox scenarios, another sandbox can overwrite `currentTicks.current` between scheduling and execution, causing the timer callback to run under a different sandbox's tick budget and bypass the original sandbox's execution quota/watchdog. Version 0.8.35 fixes this issue.
Title SandboxJS timers have an execution-quota bypass (cross-sandbox currentTicks race)
Weaknesses CWE-362
References
Metrics cvssV4_0

{'score': 4.8, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'}


Subscriptions

Nyariv Sandboxjs
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-03-19T15:51:43.598Z

Reserved: 2026-03-13T15:02:00.625Z

Link: CVE-2026-32723

cve-icon Vulnrichment

Updated: 2026-03-19T15:51:28.897Z

cve-icon NVD

Status : Analyzed

Published: 2026-03-18T22:16:24.827

Modified: 2026-03-19T19:20:39.497

Link: CVE-2026-32723

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-03-25T11:52:07Z

Weaknesses