Older: (see more recent copy that obsoletes this)"Silent Spring: Prototype Pollution Leads to Re...

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • number6
    404 Image not found
    • Apr 2019
    • 2172

    #1

    Older: (see more recent copy that obsoletes this)"Silent Spring: Prototype Pollution Leads to Re...

    A newer version of this has been created: https://forum.defcon.org/node/246117

    Silent Spring: Prototype Pollution Leads to Remote Code Execution in Node.js

    Mikhail Shcherbakov, KTH Royal Institute of Technology, He/Him

    Musard Balliu, KTH Royal Institute of Technology, He/

    Demo, Tool, Exploit

    20



    Prototype pollution is a dangerous vulnerability affecting prototype-based languages like JavaScript and the Node.js platform. It refers to the ability of an attacker to inject properties into an object's root prototype at runtime and subsequently trigger the execution of legitimate code gadgets that access these properties on the object's prototype, leading to attacks such as Denial of Service (DoS), privilege escalation, and Remote Code Execution (RCE). While there is anecdotal evidence that prototype pollution leads to RCE, current research does not tackle the challenge of gadget detection, thus only showing feasibility of DoS attacks, mainly against Node.js libraries.


    We set out to study the problem in a holistic way, from the detection of prototype pollution to detection of gadgets, with the ambitious goal of finding end-to-end exploits beyond DoS, in full-fledged Node.js applications. We build the first multi-staged framework that uses multi-label static taint analysis to identify prototype pollution in Node.js libraries and applications, as well as a hybrid approach to detect universal gadgets, notably, by analyzing the Node.js source code. We implement our framework on top of GitHub's static analysis framework CodeQL to find 11 universal gadgets in core Node.js APIs, leading to code execution. Furthermore, we use our methodology in a study of 15 popular Node.js applications to identify prototype pollutions and gadgets. We manually exploit eight RCE vulnerabilities in three high-profile applications such as NPM CLI, Parse Server, and Rocket.Chat. Our results provide alarming evidence that prototype pollution in combination with powerful universal gadgets lead to RCE in Node.js.



    Mikhail Shcherbakov came to security from enterprise app development. The tendency is to push it as far as you can… He is now doing a Ph.D. in Language-Based Security after 10+ years of experience in the industry. He participated in Microsoft, GitHub, and open-source bug bounty programs, found vulnerabilities in popular products, and helped to fix them. Before starting a Ph.D. program, he focused on .NET and web security, gave talks at conferences, organized IT meetups, and got the Microsoft MVP Award in 2016 – 2018. Mikhail is an author of commercial static analysis tools and continues research in program analysis.



    The full list of references presented in the paper Mikhail Shcherbakov, Musard Balliu and Cristian-Alexandru Staicu "Silent Spring: Prototype Pollution Leads to Remote Code Execution in Node.js" https://github.com/yuske/silent-spri...ll-version.pdf
    Last edited by number6; July 1, 2023, 10:11.
  • number6
    404 Image not found
    • Apr 2019
    • 2172

    #2
    A newer version of this has been created:
    https://forum.defcon.org/node/246117

    Comment

    Working...