UNKNOWNCVE-2026-34208

SandboxJS: Sandbox-Integritätsausbruch

Plattform

nodejs

Komponente

@nyariv/sandboxjs

### Zusammenfassung SandboxJS blockiert die direkte Zuweisung zu globalen Objekten (z. B. `Math.random = ...`), aber dieser Schutz kann durch einen exponierten aufrufbaren Konstruktorpfad umgangen werden: `this.constructor.call(target, attackerObject)`. Da `this.constructor` in die interne `SandboxGlobal`-Funktion aufgelöst wird und `Function.prototype.call` zulässig ist, kann Angreifer-Code beliebige Eigenschaften in Host-globale Objekte schreiben und diese Mutationen über Sandbox-Instanzen im selben Prozess hinweg beibehalten. ### Details Das beabsichtigte Sicherheitsmodell basiert auf Schreibzeitprüfungen bei Zuweisungsoperationen. In `assignCheck` werden Schreibvorgänge verweigert, wenn das Ziel als global markiert ist (`obj.isGlobal`), was einfache Payloads wie `Math.random = () => 1` korrekt blockiert. Referenz: [`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`, ); } ``` Die Umgehung funktioniert, weil der gefährliche Schreibvorgang nicht durch einen Zuweisungs-Opcode ausgeführt wird. Stattdessen erreicht Angreifer-Code einen Host-Aufruf, der

So beheben

Kein offizieller Patch verfügbar. Prüfe auf Workarounds oder überwache auf Updates.

Abhängigkeiten automatisch überwachen

Werde benachrichtigt, wenn neue Schwachstellen deine Projekte betreffen. Für immer kostenlos.

Kostenlos starten