Prototype Pollution Leads to RCE: Gadgets Everywhere
summary
Claims automated analysis finds over 10 real RCEs by chaining Prototype Pollution into usable gadgets across Node core and popular NPM packages, with concrete exploits: abusing npm CLI spawn options (polluting nth to control git SSH command), hijacking spawn.shell to run node with a remote debugger via internal inspect client, and combining a JS-BSON eval enabled gadget with a race condition against Parse Server + MongoDB to execute code. Tools include static queries, dynamic tracing (strace/citrace) and a prototype-pollution detector; mitigations include using Object.create(null) or copying only own properties.
AI-written summary · about
chapters (10)
- 0:00Introduction to pollution
- 1:33JavaScript prototype model
- 3:44Pollution to remote code
- 6:48Real world case study
- 10:21Node.js core gadgets
- 15:07Require gadgets analysis
- 21:01Mitigations and bypasses
- 24:36Exploiting 3rd party libs
- 30:18Exploitation techniques
- 33:32Defense and conclusion
related talks
34mReal World JavaScript Security
48mPreloading Insecurity In Your Electron
23mJavaScript attack surface
29mHack Me if You Can
41mServer Side Prototype Pollution
20mAutomated Exploit Generation for Node.js Packages
51mStranger Danger: Your Node.js Attack Surface Just Got Bigger
42mDon't trust the DOM: Bypassing XSS mitigations via script gadgets
