Type Casting Verification: Stopping an Emerging Attack Vector
Byoungyoung Lee, Chengyu Song, Taesoo Kim, and Wenke Lee Georgia Institute of Technology
1
Type Casting Verification: Stopping an Emerging Attack Vector - - PowerPoint PPT Presentation
Type Casting Verification: Stopping an Emerging Attack Vector Byoungyoung Lee, Chengyu Song, Taesoo Kim, and Wenke Lee Georgia Institute of Technology 1 Vulnerability Trends Microsoft vulnerability trends (2013) Use-after-free Stack
1
2
Microsoft vulnerability trends (2013)
Use-after-free Stack overflow Heap overflow Bad casting (or type confusion)
Microsoft vulnerability trends (2013)
Microsoft vulnerability trends (2013)
5
6
7
7
Element HTMLElement SVGElement
7
Element HTMLElement SVGElement
7
Element HTMLElement SVGElement
7
Element HTMLElement SVGElement
8
vftptr for P int m_P
Access scope of P*
8
vftptr for P int m_P vftptr for D int m_P int m_D
Access scope of P* Access scope of D*
8
9
9
9
9
vftptr for P int m_P
9
vftptr for P int m_P
9
vftptr for P int m_P int m_D
9
vftptr for P int m_P int m_D
Element SVGElement HTMLElement
HTMLUnknownElement ContainerNode
10
Element SVGElement HTMLElement
HTMLUnknownElement ContainerNode
10
Element SVGElement HTMLElement
HTMLUnknownElement ContainerNode
10
Element SVGElement HTMLElement
HTMLUnknownElement ContainerNode
10
Element SVGElement HTMLElement
HTMLUnknownElement ContainerNode
10
Element SVGElement HTMLElement ContainerNode
11
PseudoElement Node EventTarget TreeShared<Node> ScriptWrapperble NoBaseWillBeGarbageCollectedFinalized<> VTTElement VTTElement LabelableElement HtmlTableElement HTMLRubyElement HTMLFontElement HTMLMenuElement HTMLLabelElement
…
HTMLUnknownElement
Element SVGElement HTMLElement ContainerNode
11
PseudoElement Node EventTarget TreeShared<Node> ScriptWrapperble NoBaseWillBeGarbageCollectedFinalized<> VTTElement VTTElement LabelableElement HtmlTableElement HTMLRubyElement HTMLFontElement HTMLMenuElement HTMLLabelElement
…
HTMLUnknownElement
vftptr …
&std::type_info 1st virtual function Offset to the top
…
12
… ...
13
… ...
13
… ...
13
14
15
15
15
16
16
16
16
16
16
17
17
17
18
18
18
18
18
19
19
19
19
19
19
20
21
22
23
24
24
24
25
26
0% 20% 40% 60% 80% 100% 120% 140% Octane SunSpider Dromaeo-JS Dromaeo-DOM
Chromium Firefox
27
28
29