← All research

CVE-2026-73083

V8 Isolate Sandbox Bypass via importFresh Module Loading

01Record

IdentifierCVE-2026-73083
ProjectActivepieces
ComponentimportFresh()
CWECWE-696
CVSS7.6
Disclosed2026-07-17
Endor referenceENDOR-VUL-2026-3003
WriteupLink

02Detail

Description: A user's Code step is TypeScript, compiled by bun build --target node --format cjs into a CommonJS module. Under SANDBOX_CODE_ONLY, importFresh() (a require() wrapper) runs the module body in the host Node process during the module-loading phase, before .toString() on the exported function ever reaches the V8 isolate. The isolate is real and the code never has to enter it: everything at module top level has already executed outside. Affects Activepieces through 0.79.4.

Impact: Complete sandbox bypass with code execution in the host engine process, exposing AP_ENCRYPTION_KEY and AP_JWT_SECRET. With both, an attacker decrypts stored connection credentials and forges admin tokens without escalating further.

Fixed in 0.80.0 (2026-03-31): module source is now evaluated inside the isolate, where require is unbound and raises a ReferenceError. Operators should also stop sharing LIB_PATH across runs and use a fresh per-run lib tree. This is the same ordering mistake as the Dify preload finding in ENDOR-VUL-2026-0105, one layer up the stack. Full analysis is in the technical whitepaper.

Discovered by Peyton Kennedy (p80n), Aviral2642, q1uf3ng.