[13371] 2018-11-03_Safari信息泄露漏洞分析

文档创建者:s7ckTeam
浏览次数:12
最后更新:2025-01-18
2018-11-03_Safari信息泄露漏洞分析 S a f a r i A l p h a _ h 4 c k   F r e e B u f   2 0 1 8 - 1 1 - 0 3 J a v a s c r i p t 3 2 访 访 J a v a S c r i p t C o r e J a v a S c r i p t W e b K i t I n d e x i n g T y p e 8 F l a g I n d e x i n g T y p e . h i n d e x i n g 使 i n d e x i n g A r r a y W i t h U n d e c i d e d ( u n d e f i n e d ) A r r a y . p r o t o t y p e . c o n c a t A r r a y P r o t o t y p e . c p p [ [ 1 ] ] i n d e x i n g i n d e x i n g A r r a y W i t h D o u b l e [ [ 2 ] ] m e r g e I n d e x i n g T y p e F o r C o p y i n g A r r a y . p r o t o t y p e . c o n c a t i n d e x i n g i n d e x i n g A r r a y W i t h U n d e c i d e d i n d e x i n g E n c o d e d J S V a l u e J S C _ H O S T _ C A L L   a r r a y P r o t o P r i v a t e F u n c C o n c a t M e m c p y ( E x e c S t a t e *   e x e c ) {         . . .           u n s i g n e d   r e s u l t S i z e   = c h e c k e d R e s u l t S i z e . u n s a f e G e t ( ) ;         I n d e x i n g T y p e   f i r s t T y p e   = f i r s t A r r a y - > i n d e x i n g T y p e ( ) ;         I n d e x i n g T y p e   s e c o n d T y p e   = s e c o n d A r r a y - > i n d e x i n g T y p e ( ) ;         I n d e x i n g T y p e   t y p e   = f i r s t A r r a y - > m e r g e I n d e x i n g T y p e F o r C o p y i n g ( s e c o n d T y p e ) ;   / /   [ [   1   ] ]         i f   ( t y p e   = =   N o n A r r a y   | | ! f i r s t A r r a y - > c a n F a s t C o p y ( v m ,   s e c o n d A r r a y )   | |   r e s u l t S i z e   > = M I N _ S P A R S E _ A R R A Y _ I N D E X )   {                 . . .         }           J S G l o b a l O b j e c t *   l e x i c a l G l o b a l O b j e c t   = e x e c - > l e x i c a l G l o b a l O b j e c t ( ) ;         S t r u c t u r e *   r e s u l t S t r u c t u r e   = l e x i c a l G l o b a l O b j e c t - > a r r a y S t r u c t u r e F o r I n d e x i n g T y p e D u r i n g A l l o c a t i o n ( t y p e ) ;         i f ( U N L I K E L Y ( h a s A n y A r r a y S t o r a g e ( r e s u l t S t r u c t u r e - > i n d e x i n g T y p e ( ) ) ) )                 r e t u r n   J S V a l u e : : e n c o d e ( j s N u l l ( ) ) ;         A S S E R T ( ! l e x i c a l G l o b a l O b j e c t - > i s H a v i n g A B a d T i m e ( ) ) ;         O b j e c t I n i t i a l i z a t i o n S c o p e i n i t i a l i z a t i o n S c o p e ( v m ) ;         J S A r r a y *   r e s u l t   = J S A r r a y : : t r y C r e a t e U n i n i t i a l i z e d R e s t r i c t e d ( i n i t i a l i z a t i o n S c o p e ,   r e s u l t S t r u c t u r e , r e s u l t S i z e ) ;         i f   ( U N L I K E L Y ( ! r e s u l t ) )   {                 t h r o w O u t O f M e m o r y E r r o r ( e x e c ,   s c o p e ) ;                 r e t u r n   e n c o d e d J S V a l u e ( ) ;         }           i f   ( t y p e   = =   A r r a y W i t h D o u b l e )   {                 [ [   2   ] ]                 d o u b l e *   b u f f e r   = r e s u l t - > b u t t e r f l y ( ) - > c o n t i g u o u s D o u b l e ( ) . d a t a ( ) ;                 m e m c p y ( b u f f e r , f i r s t B u t t e r f l y - > c o n t i g u o u s D o u b l e ( ) . d a t a ( ) ,   s i z e o f ( J S V a l u e )   * f i r s t A r r a y S i z e ) ;                 m e m c p y ( b u f f e r   +   f i r s t A r r a y S i z e , s e c o n d B u t t e r f l y - > c o n t i g u o u s D o u b l e ( ) . d a t a ( ) ,   s i z e o f ( J S V a l u e )   * s e c o n d A r r a y S i z e ) ;         }   e l s e   i f   ( t y p e   ! =   A r r a y W i t h U n d e c i d e d )   {   . . . i n l i n e I n d e x i n g T y p e   J S A r r a y : : m e r g e I n d e x i n g T y p e F o r C o p y i n g ( I n d e x i n g T y p e   o t h e r ) {         I n d e x i n g T y p e   t y p e   =   i n d e x i n g T y p e ( ) ;         i f   ( ! ( t y p e   &   I s A r r a y   & &   o t h e r &   I s A r r a y ) )                 r e t u r n   N o n A r r a y ;           i f   ( h a s A n y A r r a y S t o r a g e ( t y p e )   | | h a s A n y A r r a y S t o r a g e ( o t h e r ) )                 r e t u r n   N o n A r r a y ;           i f   ( t y p e   = =   A r r a y W i t h U n d e c i d e d )                 r e t u r n   o t h e r ;   [ [   3   ] ]   . . .
i n d e x i n g i n d e x i n g A r r a y W i t h U n d e c i d e d i n d e x i n g A r r a y W i t h D o u b l e A r r a y . p r o t o t y p e . c o n c a t [ [ 2 ] ] b u t t e r f l y J a v a S c r i p t m e m c p y A r r a y . p r o t o t y p e . c o n c a t i n d e x i n g A r r a y W i t h U n d e c i d e d l o k i h a r d t 2 0 1 7 N e w A r r a y W i t h S i z e   D F G   J I T F T L L o w e r D F G T o B 3 . c p p F T L a l l o c a t e J S A r r a y i n d e x i n g A r r a y W i t h U n d e c i d e d n e w   A r r a y ( n ) F T L   J I T [ [ 4 ] ] i n d e x i n g A r r a y W i t h U n d e c i d e d 使 n e w   A r r a y ( ) c o n c a t d o u b l e F T L i O S   1 2 m a c O S   M o j a v e ( S a f a r i ) C V E C V E - 2 0 1 8 - 4 3 5 8 *   p h o e n h e x F B A l p h a _ h 4 c k F r e e B u f . C O M A r r a y V a l u e s a l l o c a t e J S A r r a y ( L V a l u e   p u b l i c L e n g t h ,   L V a l u e   v e c t o r L e n g t h ,   L V a l u e   s t r u c t u r e , L V a l u e   i n d e x i n g T y p e ,   b o o l   s h o u l d I n i t i a l i z e E l e m e n t s   =   t r u e ,   b o o l s h o u l d L a r g e A r r a y S i z e C r e a t e A r r a y S t o r a g e   =   t r u e ) {         [   . . .   ]         i n i t i a l i z e A r r a y E l e m e n t s (               i n d e x i n g T y p e ,               s h o u l d I n i t i a l i z e E l e m e n t s   ? m _ o u t . i n t 3 2 Z e r o   :   p u b l i c L e n g t h ,   v e c t o r L e n g t h ,               b u t t e r f l y ) ;   . . . v o i d i n i t i a l i z e A r r a y E l e m e n t s ( L V a l u e   i n d e x i n g T y p e ,   L V a l u e   b e g i n ,   L V a l u e   e n d ,   L V a l u e b u t t e r f l y ) {           i f   ( b e g i n   = =   e n d )                 r e t u r n ;           i f   ( i n d e x i n g T y p e - > h a s I n t 3 2 ( ) )   {                 I n d e x i n g T y p e   r a w I n d e x i n g T y p e   = s t a t i c _ c a s t < I n d e x i n g T y p e > ( i n d e x i n g T y p e - > a s I n t 3 2 ( ) ) ;                 i f   ( h a s U n d e c i d e d ( r a w I n d e x i n g T y p e ) )                         r e t u r n ;     / /   [ [   4   ] ]

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则