Skip to content
OpenAdvisories
Medium · 4.8 CVE-2026-32723 EUVD-2026-12971GHSA-7p5m-xrh7-769r

SandboxJS timers have an execution-quota bypass (cross-sandbox currentTicks race)

Published Mar 18, 2026 · Updated Mar 19, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
nyariv SandboxJS < 0.8.35 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm @nyariv/sandboxjs < 0.8.35 0.8.35 GHSA-7p5m-xrh7-769r

References