Overview
Explore the security aspects of JavaScript JIT compilers in this Black Hat conference talk. Delve into the challenges faced by these compilers and the solutions implemented by prominent engines. Examine JavaScript values, type information, speculation guards, and the JIT compiler pipeline. Investigate bug categories, optimization techniques, and potential vulnerabilities. Learn about shape guards, arrays, objects, and abstract interpretation. Analyze practical examples and demonstrations, including a calculator exploit. Gain insights into new trends in browser exploitation and understand the implications for client-side security.
Syllabus
Intro
JavaScript Values
JIT Compilers
JavaScript
Type Information
Example
Speculation Guards
Speculation All
JIT Compiler Pipeline
Summary
Bug Categories
Lowpass handlers
Takeaway
Optimization
Optimizations
bounds checking
check bounced
range analysis
speed analysis
bounce check
what could go wrong
NVH
Exploit
More examples
What is redundancy
How would you do this
The function
Shape guards
Arrays
Objects
Pseudocode
Abstract Interpreter
CreateThis
Graph Building
Check Hoisting
Demo
Calculator
KXTed
Conclusion
Taught by
Black Hat