A method of prototype pollution vulnerability mitigation at runtime

DSpace Repository

A- A A+

A method of prototype pollution vulnerability mitigation at runtime

Show simple item record

dc.contributor Universidade Federal de Santa Catarina
dc.contributor.advisor Westphall, Carla Merkle
dc.contributor.author Santos, Renan Rocha Souto dos
dc.date.accessioned 2026-09-04T23:30:03Z
dc.date.available 2026-09-04T23:30:03Z
dc.date.issued 2026
dc.identifier.other 398342
dc.identifier.uri https://repositorio.ufsc.br/handle/123456789/275424
dc.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.
dc.description.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.
dc.description.abstract 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. en
dc.format.extent 169 p.| il., tabs.
dc.language.iso eng
dc.subject.classification Computação
dc.subject.classification Segurança da informação
dc.subject.classification JavaScript (Linguagem de programação de computador)
dc.title A method of prototype pollution vulnerability mitigation at runtime
dc.type Dissertação (Mestrado)


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 simple item record

Search DSpace


Browse

My Account

Statistics

Compartilhar