Exploiting the Unexploitable: Insights from the Kibana Bug Bounty
Advanced JavaScript and TypeScript exploit primitives turning theoretically unexploitable flaws in Kibana into working code execution.
Summary
Complex Bugs in JavaScript and TypeScript
We explore case studies of exploiting vulnerabilities in modern JavaScript and TypeScript applications, drawing on experiences from participating in the Kibana Bug Bounty Program. It's not uncommon to encounter a vulnerability that appears unexploitable at first glance, or to be told by a triage team that the behavior is "by design." So, what options does a security researcher have in such situations? And what primitives can be utilized to construct an exploitation chain with significant impact?
Kibana Bug Bounty Exploitation Case Studies
Our study involves breaking out of properly isolated containers in scenarios where there is RCE-by-design. We will examine several Prototype Pollutions that crash an application in less than one second after exploitation and explore how these vulnerabilities can ultimately lead to critical RCEs. Furthermore, we introduce new primitives and gadgets that enable the achievement of RCE from Prototype Pollutions previously deemed unexploitable beyond DoS attacks.
Constructing Reliable RCE Primitives
By highlighting these methods, the talk aims to equip attendees with advanced techniques for exploiting complex vulnerability chains in JavaScript applications, as well as recommendations for proper defense and mitigations against them.
Related talks
Main Stage·20 min
Mikhail Shcherbakov · Musard Balliu
Mikhail Shcherbakov and Musard Balliu uncover universal Prototype Pollution gadgets within Node.js core and popular NPM packages, achieving RCE across major applications.
Main Stage·30 min
Feng Xiao
Feng Xiao presents Hidden Property Abusing (HPA), a novel attack vector exploiting internal Node.js runtime properties to achieve arbitrary code execution.
Main Stage·31 min
Feng Xiao
Feng Xiao answers audience questions on Hidden Property Abusing (HPA), JavaScript runtime internals, and securing NPM libraries.


