CVE-2026-32723
Received Received - Intake
Execution-Quota Bypass in SandboxJS Timers via Shared Tick State

Publication date: 2026-03-18

Last updated on: 2026-03-19

Assigner: GitHub, Inc.

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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-03-18
Last Modified
2026-03-19
Generated
2026-05-07
AI Q&A
2026-03-19
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
nyariv sandboxjs to 0.8.35 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-362 The product contains a concurrent code sequence that requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence operating concurrently.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability exists in SandboxJS, a JavaScript sandboxing library, in versions prior to 0.8.35. The issue is related to how timers are handled within the sandbox environment. Specifically, a global tick state called `currentTicks.current` is shared between different sandboxes. When timer string handlers are compiled at execution time, they use this global tick state instead of the tick object of the sandbox that scheduled the timer.

In scenarios where multiple sandboxes run concurrently (multi-tenant), another sandbox can overwrite the global tick state between the scheduling and execution of a timer. This causes the timer callback to run under a different sandbox's tick budget, effectively bypassing the original sandbox's execution quota or watchdog mechanism.

This means that the intended limits on execution time or resource usage for a sandbox can be circumvented, allowing code to run longer or consume more resources than intended. The issue was fixed in version 0.8.35 of SandboxJS.


How can this vulnerability impact me? :

This vulnerability can allow code running inside one sandbox to bypass its execution quota or watchdog timer by exploiting the shared global tick state. As a result, malicious or buggy code could consume more CPU time or resources than intended, potentially leading to performance degradation or denial of service within the environment hosting multiple sandboxes.

In multi-tenant or concurrent sandbox scenarios, this could allow one tenant's code to interfere with the resource limits of another, undermining isolation guarantees and potentially leading to security or stability issues.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

I don't know


How can this vulnerability be detected on my network or system? Can you suggest some commands?

I don't know


What immediate steps should I take to mitigate this vulnerability?

To mitigate this vulnerability, upgrade SandboxJS to version 0.8.35 or later, where the issue with timer execution-quota bypass has been fixed.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart