A method of prototype pollution vulnerability mitigation at runtime

DSpace Repository

A- A A+

A method of prototype pollution vulnerability mitigation at runtime

Show full item record

Title: A method of prototype pollution vulnerability mitigation at runtime
Author: Santos, Renan Rocha Souto dos
Abstract: O prototype pollution, catalogado como CWE-1321 na Common Weakness Enumeration, é uma vulnerabilidade de segurança de alto impacto no ecossistema JavaScript. Classificado em oitavo lugar no OWASP Top 10 de 2021, pode resultar em Negação de Serviço (DoS), Execução Remota de Código (RCE) e evasão de autenticação. Embora a detecção por meio de análises estáticas e dinâmicas tenha sido amplamente estudada na literatura, ainda existe uma lacuna significativa em estratégias de mitigação em tempo de execução que não exijam a desativação dos protótipos de objetos. Este trabalho propõe um algoritmo de mitigação para o ambiente de execução Node.js, empregando técnicas de metaprogramação, especificamente as APIs Proxy e Reflect, para impor dinamicamente a integridade dos protótipos de objetos. O algoritmo utiliza um modelo de análise de contaminação no qual os argumentos de funções exportadas por módulos são identificados como \"fontes\" não confiáveis, enquanto o protótipo do objeto é tratado como o \"local sensível\". Por meio da interceptação do carregamento de módulos via \"require\" e \"import\", o algoritmo monitora tentativas de modificação dos protótipos e bloqueia injeções originadas dessas fontes não confiáveis. A avaliação com base em um conjunto de vulnerabilidades publicamente conhecidas, catalogadas como Common Vulnerabilities and Exposures (CVE), demonstra que o algoritmo previne efetivamente o prototype pollution, integrando-se facilmente a projetos existentes e exigindo apenas que o módulo de mitigação seja carregado como a primeira dependência. De modo geral, o algoritmo mitiga a vulnerabilidade com sucesso, embora possa introduzir alguma sobrecarga de desempenho dependendo do número de módulos importados e de suas funções exportadas.Abstract: Prototype pollution, catalogued as CWE-1321 in the Common Weakness Enumeration, is a high-impact security vulnerability in the JavaScript ecosystem. Ranked eighth in the 2021 OWASP Top 10, it can lead to Denial of Service (DoS), Remote Code Execution (RCE), and authentication bypass. While detection through static and dynamic analysis has been thoroughly studied in the literature, there remains a significant gap in runtime mitigation strategies that do not require disabling object prototypes. This work proposes a mitigation algorithm for the Node.js runtime, employing meta-programming techniques, specifically the Proxy and Reflect APIs, to dynamically enforce object prototype integrity. The algorithm uses a taint analysis model in which arguments of exported module functions are identified as untrusted \"sources\" and the object prototype is treated as the \"sink\". By intercepting module loading via \"require \" and \"import\", the algorithm monitors prototype modification attempts and blocks injections originating from these untrusted sources. Evaluation against a database of known Common Vulnerabilities and Exposures (CVEs) demonstrates that the algorithm effectively prevents prototype pollution while integrating easily into existing projects, requiring only that the mitigation module be loaded as the first dependency. Overall, the algorithm mitigates the vulnerability successfully, although it may introduce some performance overhead depending on the number of imported modules and their exported functions.
Description: Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2026.
URI: https://repositorio.ufsc.br/handle/123456789/275424
Date: 2026


Files in this item

Files Size Format View
PGCC1339-D.pdf 8.738Mb PDF View/Open

This item appears in the following Collection(s)

Show full item record

Search DSpace


Browse

My Account

Statistics

Compartilhar