UNKNOWNCVE-2026-34208

SandboxJS: Sandbox integriteit ontsnapping

Platform

nodejs

Component

@nyariv/sandboxjs

Opgelost in

0.8.36

### Samenvatting SandboxJS blokkeert directe toewijzing aan globale objecten (bijvoorbeeld `Math.random = ...`), maar deze bescherming kan worden omzeild via een blootgesteld aanroepbaar constructor pad: `this.constructor.call(target, attackerObject)`. Omdat `this.constructor` verwijst naar de interne `SandboxGlobal` functie en `Function.prototype.call` is toegestaan, kan aanvallerscode willekeurige eigenschappen schrijven naar host globale objecten en deze mutaties persistent maken over sandbox instanties in hetzelfde proces. ### Details Het beoogde veiligheidsmodel is gebaseerd op write-time controles in toewijzingsoperaties. In `assignCheck` worden schrijfbewerkingen geweigerd wanneer de bestemming als globaal is gemarkeerd (`obj.isGlobal`), wat correct eenvoudige payloads blokkeert zoals `Math.random = () => 1`. Referentie: [`src/executor.ts#L215-L218`](https://github.com/nyariv/SandboxJS/blob/cc8f20b4928afed5478d5ad3d1737ef2dcfaac29/src/executor.ts#L215-L218) ```ts if (obj.isGlobal) { throw new SandboxAccessError( `Cannot ${op} property '${obj.prop.toString()}' of a global object`, ); } ``` De bypass werkt omdat de gevaarlijke schrijfbewerking niet wordt uitgevoerd door een toewijzingsopcode. In plaats daarvan bereikt aanvallerscode een host aanroepbaar die

Hoe te verhelpen

Geen officiële patch beschikbaar. Zoek naar tijdelijke oplossingen of monitor updates.

Bewaak uw afhankelijkheden automatisch

Ontvang meldingen wanneer nieuwe kwetsbaarheden uw projecten beïnvloeden.

Gratis beginnen