[29102] 2021-08-03_【漏洞利用】利用UBUNTUSHIFTFS驱动程序中的DOUBLEFREE漏洞(CVE-2021-3492)

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-19
2021-08-03_【漏洞利用】利用UBUNTUSHIFTFS驱动程序中的DOUBLEFREE漏洞(CVE-2021-3492)   U B U N T U   S H I F T F S     D O U B L E   F R E E     ( C V E - 2 0 2 1 - 3 4 9 2 ) O t s   2 0 2 1 - 0 8 - 0 3 O t s   P w n 2 O w n   V a n c o u v e r     4     ( L P E )   使 L i n u x   ( U b u n t u )     W i n d o w s   1 0   U b u n t u   r o o t   访 2 0 2 1     P w n 2 O w n   V a n c o u v e r   使   U b u n t u   L o c a l   E s c a l a t i o n   o f   P r i v i l e g e     L i n u x   K A S L R S M A P 使   U b u n t u   C V E - 2 0 2 1 - 3 4 9 2   L i n u x S h i f t f s     U b u n t u     k e r n e l . o r g     U b u n t u   G r o o v y   ( 2 0 . 1 0 )     U b u n t u   F o c a l   ( 2 0 . 0 4 )     U b u n t u   2 0 1 9     4     ( x 8 6 )   G r o o v y   5 . 8 . 0 - 5 0 . 5 6 5 . 4 . 0 - 7 2 . 8 0 S y n a c k t i v   G i t h u b     h t t p s : / / g i t h u b . c o m / s y n a c k t i v / C V E - 2 0 2 1 - 3 4 9 2 / b l o b / m a s t e r / e x p l o i t / m a i n . c   P o C     U b u n t u   2 0 . 1 0   ( 5 . 8 . 0 - x x - g e n e r i c )   x 8 6   6 4   P w n 2 O w n   U b u n t u     L i n u x   G i t     r o o t     ( U I D   0 )   L i n u x   r o o t     r o o t     x 8 6 A R M     E L 0   3   访 g r e p   - R   " S Y S C A L L . * _ D E F I N E "   _ _ x 6 4 _ s y s _ *   v m l i n u x     / p r o c / k a l l s y m s   s y s c a l l 使   ( f t r a c e )   使   s h e l l   使   f t r a c e     6 4   3 2   使   3 2  
使 o p e n r e a d w r i t e i o c t l L i n u x   i n o d e / p r o c f s s y s f s d e b u g f s c g r o u p     / d e v   s o c k e t 使   A P I p i d f d i o _ u r i n g . . . 访 使   m a n   7   c a p a b i l i t i e s   V F S U b u n t u   r o o t /   / d e v / m e m V F S I P C     U I D   使   U I D   U I D   0   L i n u x   线   s y s t c t l   /   U b u n t u   访 使 u n s h a r e c l o n e F S _ U S E R N S _ M O U N T   r o o t   a n d r o i d / b i n d e r f s m q u e u e s h m e m s y s f s r a m f s   ( t m p f s ) o v e r l a y f s p r o c a u f s f u s e $   s u d o   s y s c t l   k e r n e l . u n p r i v i l e g e d _ u s e r n s _ c l o n e k e r n e l . u n p r i v i l e g e d _ u s e r n s _ c l o n e   =   1 $   u n s h a r e   - U   - r   #   c r e a t e   a   u s e r n s   w h e r e   u i d   0   i s   m a p p e d   o n   c u r r e n t   u s e r $   u n s h a r e   - m         #   c r e a t e   a   m o u n t   n a m e s p a c e $   m o u n t   - t   t m p f s   n o n e   [ d i r ]
s h i f t f s d e v p t s c g r o u p 使   ( . k o )   U b u n t u   线 s h i f t f s   U b u n t u   S h i f t F S     ( C V E - 2 0 2 1 - 3 4 9 2 ) s h i f t f s   使   U I D     G I D h t t p s : / / d i s c u s s . l i n u x c o n t a i n e r s . o r g / t / t r y i n g - o u t - s h i f t f s / 5 1 5 5 h t t p s : / / l w n . n e t / A r t i c l e s / 6 8 7 3 5 4 / 访 m o u n t d 2   s h i f t f s   使 m a r k p a s s t h r o u g h = 2 s h i f t f s     i o c t l   i o c t l   s h i f t f s _ r e a l _ i o c t l 使 B T R F S _ I O C _ S N A P _ C R E A T E i o c t l   s h i f t f s _ b t r f s _ i o c t l _ f d _ r e p l a c e   b t r f s _ i o c t l _ v o l _ a r g s     i n o d e   b t r f s   i o c t l   4 0 9 6     A P I   $   m k d i r   d 1   d 2 $   u n s h a r e   - U   - r $   u n s h a r e   - m $   m o u n t   - t   t m p f s   n o n e   d 1 $   m o u n t   - t   s h i f t f s   - o   m a r k , p a s s t h r o u g h = 2   d 1   d 2 s t a t i c   l o n g   s h i f t f s _ r e a l _ i o c t l ( s t r u c t   f i l e   * f i l e ,   u n s i g n e d   i n t   c m d ,   u n s i g n e d   l o n g   a r g ) { i n t   n e w f d   =   - E B A D F ; l o n g   e r r   =   0 ,   r e t   =   0 ; v o i d   _ _ u s e r   * a r g p   =   ( v o i d   _ _ u s e r   * ) a r g ; s t r u c t   b t r f s _ i o c t l _ v o l _ a r g s   * b t r f s _ v 1   =   N U L L ; s t r u c t   b t r f s _ i o c t l _ v o l _ a r g s _ v 2   * b t r f s _ v 2   =   N U L L ;         r e t   =   s h i f t f s _ b t r f s _ i o c t l _ f d _ r e p l a c e ( c m d ,   a r g p ,   & b t r f s _ v 1 ,   & b t r f s _ v 2 ,   & n e w f d ) ; i f   ( r e t   <   0 ) r e t u r n   r e t ; / /   h e r e   w r a p p e r   t o   v f s _ i o c t l ( ) / /   . . .         e r r   =   s h i f t f s _ b t r f s _ i o c t l _ f d _ r e s t o r e ( c m d ,   n e w f d ,   a r g p ,   b t r f s _ v 1 ,   b t r f s _ v 2 ) ; i f   ( ! r e t )                 r e t   =   e r r ; r e t u r n   r e t ; } # d e f i n e   B T R F S _ P A T H _ N A M E _ M A X   4 0 8 7 s t r u c t   b t r f s _ i o c t l _ v o l _ a r g s   {         _ _ s 6 4   f d ;
  s h i f t f s     i o c t l   b t r f s _ i o c t l _ v o l _ a r g s     f d   c o p y _ t o _ u s e r s h i f t f s _ r e a l _ i o c t l 使 s h i f t f s _ b t r f s _ i o c t l _ f d _ r e s t o r e c o p y _ t o _ u s e r b t r f s _ i o c t l _ v o l _ a r g s v 1 v 2 s h i f t f s _ b t r f s _ i o c t l _ f d _ r e s t o r e 1 .     f d 2 .   s h i f t f s _ b t r f s _ i o c t l _ f d _ r e p l a c e m e m d u p _ u s e r c o p y _ f r o m _ u s e r 使   G F P _ U S E R   k m a l l o c 使   G F P _ K E R N E L   c o p y _ t o _ u s e r         _ _ s 6 4   f d ; c h a r   n a m e [ B T R F S _ P A T H _ N A M E _ M A X   +   1 ] ; } ; s t a t i c   i n t   s h i f t f s _ b t r f s _ i o c t l _ f d _ r e p l a c e ( i n t   c m d ,   v o i d   _ _ u s e r   * a r g , s t r u c t   b t r f s _ i o c t l _ v o l _ a r g s   * * b 1 , s t r u c t   b t r f s _ i o c t l _ v o l _ a r g s _ v 2   * * b 2 , i n t   * n e w f d ) { / /   . . . i f   ( c m d   = =   B T R F S _ I O C _ S N A P _ C R E A T E )   {                 v 1 - > f d   =   * n e w f d ;                 r e t   =   c o p y _ t o _ u s e r ( a r g ,   v 1 ,   s i z e o f ( * v 1 ) ) ;                 v 1 - > f d   =   o l d f d ;         }   e l s e   { / /   . . .         } i f   ( r e t )                 s h i f t f s _ b t r f s _ i o c t l _ f d _ r e s t o r e ( c m d ,   * n e w f d ,   a r g ,   v 1 ,   v 2 ) ; r e t u r n   r e t ; } s t a t i c   i n t   s h i f t f s _ b t r f s _ i o c t l _ f d _ r e s t o r e ( i n t   c m d ,   i n t   f d ,   v o i d   _ _ u s e r   * a r g , s t r u c t   b t r f s _ i o c t l _ v o l _ a r g s   * v 1 , s t r u c t   b t r f s _ i o c t l _ v o l _ a r g s _ v 2   * v 2 ) { i n t   r e t ; i f   ( ! i s _ b t r f s _ s n a p _ i o c t l ( c m d ) ) r e t u r n   0 ; i f   ( c m d   = =   B T R F S _ I O C _ S N A P _ C R E A T E )                 r e t   =   c o p y _ t o _ u s e r ( a r g ,   v 1 ,   s i z e o f ( * v 1 ) ) ; e l s e                 r e t   =   c o p y _ t o _ u s e r ( a r g ,   v 2 ,   s i z e o f ( * v 2 ) ) ;         _ _ c l o s e _ f d ( c u r r e n t - > f i l e s ,   f d ) ;         k f r e e ( v 1 ) ;         k f r e e ( v 2 ) ; r e t u r n   r e t ; } v 1   =   m e m d u p _ u s e r ( a r g ,   s i z e o f ( * v 1 ) ) ;
  v 1 - > f d k f r e e   ( k m a l l o c - 4 0 9 6 ) / U b u n t u   C O N F I G _ P R E E M P T _ V O L U N T A R Y f r e e     f r e e   v f s _ i o c t l   i n o d e   使   F U S E   c o p y _ t o _ u s e r   k f r e e   使   u s e r f a u l t f d   c l o s e _ f d   k f r e e   使 u s e r f a u l t f d 使 U b u n t u   g r o o v y   ( 2 0 . 1 0 )   线 c o p y _ t o _ u s e r 线   s h i f t f s   线 使 使   i o c t l c o p y _ t o _ u s e r .   c o p y _ t o _ u s e r c o p y _ t o _ u s e r   u s e r f a u l t f d   使
  S L A B   L i n u x   使 k m a l l o c   S L U B   使   b u g   使   4 0 9 6   S L U B   使 k m a l l o c - 4 0 9 6 2 0 9 7   4 0 9 6 k f r e e f r e e _ l i s t s l a b 使 线 k f r e e   C P U     C P U   使 k m a l l o c 使   C P U   s l a b k f r e e   1   k f r e e   C P U     C P U   使   s c h e d _ s e t a f f i n i t y   2 0 9 7     4 0 9 6     K A S L R   / 使 使 v m l i n u x 使 p a h o l e 使 d e v i n e t _ s y s c t l _ t a b l e   s y s c t l   使   s y s c t l   使   / p r o c / s y s / n e t /     p r o c f s     k m a l l o c - 4 0 9 6     I P v 4     s y s c t l     n e t / i p v 4 / d e v i n e t . c     d e v i n e t _ s y s c t l _ t a b l e   使 u n s h a r e   - n s t a t i c   s t r u c t   d e v i n e t _ s y s c t l _ t a b l e   { s t r u c t   c t l _ t a b l e _ h e a d e r   * s y s c t l _ h e a d e r ; s t r u c t   c t l _ t a b l e   d e v i n e t _ v a r s [ _ _ I P V 4 _ D E V C O N F _ M A X ] ; }   d e v i n e t _ s y s c t l =   {         . d e v i n e t _ v a r s   =   {                 D E V I N E T _ S Y S C T L _ C O M P L E X _ E N T R Y ( F O R W A R D I N G ,   " f o r w a r d i n g " , d e v i n e t _ s y s c t l _ f o r w a r d ) ,                 D E V I N E T _ S Y S C T L _ R O _ E N T R Y ( M C _ F O R W A R D I N G ,   " m c _ f o r w a r d i n g " ) ,                 D E V I N E T _ S Y S C T L _ R W _ E N T R Y ( B C _ F O R W A R D I N G ,   " b c _ f o r w a r d i n g " ) , / /   . . .         } } b a s h - 1 9 1 2         [ 0 0 2 ]   . . . .     5 5 1 5 . 3 0 6 5 5 1 :   k m a l l o c :   c a l l _ s i t e = _ _ d e v i n e t _ s y s c t l _ r e g i s t e r + 0 x 4 7 / 0 x 1 1 0   p t r = 0 0 0 0 0 0 0 0 5 5 2 c 1 9 f 5   b y t e s _ r e q = 2 1 2 0   b y t e s _ a l l o c = 4 0 9 6   g f p _ f l a g s = G F P _ K E R N E L b a s h - 1 9 1 2         [ 0 0 2 ]   . . . .     5 5 1 5 . 3 0 6 5 9 5 :   k m a l l o c :   c a l l _ s i t e = _ _ d e v i n e t _ s y s c t l _ r e g i s t e r + 0 x 4 7 / 0 x 1 1 0   p t r = 0 0 0 0 0 0 0 0 7 d d 4 7 f 0 d   b y t e s _ r e q = 2 1 2 0   b y t e s _ a l l o c = 4 0 9 6   g f p _ f l a g s = G F P _ K E R N E L b a s h - 1 9 1 2         [ 0 0 2 ]   . . . .     5 5 1 5 . 3 0 6 7 4 2 :   k m a l l o c :   c a l l _ s i t e = m r _ t a b l e _ a l l o c + 0 x 4 2 / 0 x 1 0 0   p t r = 0 0 0 0 0 0 0 0 5 9 8 a b 7 9 9   b y t e s _ r e q = 3 6 0 8   b y t e s _ a l l o c = 4 0 9 6   g f p _ f l a g s = G F P _ K E R N E L | _ _ G F P _ Z E R O b a s h - 1 9 1 2         [ 0 0 2 ]   . . . .     5 5 1 5 . 3 0 6 7 6 6 :   k m a l l o c :   c a l l _ s i t e = i p v 4 _ m i b _ i n i t _ n e t + 0 x f 4 / 0 x 1 a 0   p t r = 0 0 0 0 0 0 0 0 d 0 d 7 1 2 7 7   b y t e s _ r e q = 4 0 9 6   b y t e s _ a l l o c = 4 0 9 6   g f p _ f l a g s = G F P _ K E R N E L | _ _ G F P _ Z E R O
C P U   S l a b     S l a b     S l a b   C P U     S l a b s l a b s l a b s l a b 8 s l a b 8 c t l _ t a b l e p r o c _ h a n d l e r   K A S L R     s y s c t l d e v i n e t _ s y s c t l _ f o r w a r d   K A S L R   s y s c t l   使 使   ( B T R F S _ I O C _ S N A P _ C R E A T E )     i o c t l   4 0 9 6   f d f d   s h i f t f s     R / W   使 使   s y s c t l   s y s c t l   c t l _ t a b l e / 使 p r o c _ d o u l o n g v e c _ m i n m a x p r o c _ h a n d l e r .     / p r o c / s y s / n e t / i p v 4 / c o n f / a l l     6 4     s y s c t l s y s c t l 0   :   / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / f o r w a r d i n g :     s y s c t l _ h e a d e r   s y s c t l 1   :   / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / m c _ f o r w a r d i n g :     s y s c t l     ( s y s . d e b u g . e x c e p t i o n - t r a c e )     s y s c t l     R / W     s y s c t l 2     s y s c t l   s y s c t l 2   :   / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / b c _ f o r w a r d i n g :     s y s c t l 3   / s y s c t l 3   :   / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / a c c e p t _ r e d i r e c t s :     R / W     s y s c t l 2   s y s c t l 4   :   / p r o c / s y s / n e t / i p v 4 / c o n f / a l l / s e c u r e _ r e d i r e c t s :     R / W   / p r o c r o o t /   r o o t   访   S M A P 访 c o p y _ { f r o m | t o } _ u s e r . b a s h - 1 9 1 2         [ 0 0 2 ]   . . . .     5 5 1 5 . 3 0 6 8 1 1 :   k m a l l o c :   c a l l _ s i t e = _ _ r e g i s t e r _ s y s c t l _ t a b l e + 0 x 5 0 / 0 x 1 e 0   p t r = 0 0 0 0 0 0 0 0 1 a e 3 3 0 c c   b y t e s _ r e q = 3 2 1 6   b y t e s _ a l l o c = 4 0 9 6   g f p _ f l a g s = G F P _ K E R N E L | _ _ G F P _ Z E R O b a s h - 1 9 1 2         [ 0 0 2 ]   . . . .     5 5 1 5 . 3 0 6 9 2 2 :   k m a l l o c :   c a l l _ s i t e = i p v 6 _ i n i t _ m i b s + 0 x b 2 / 0 x 1 1 0   p t r = 0 0 0 0 0 0 0 0 d d 7 d 8 3 c 1   b y t e s _ r e q = 4 0 9 6   b y t e s _ a l l o c = 4 0 9 6   g f p _ f l a g s = G F P _ K E R N E L | _ _ G F P _ Z E R O s t r u c t   c t l _ t a b l e   { c o n s t   c h a r     *                             p r o c n a m e ;                           / *           0       0 x 8   * / v o i d   *                                           d a t a ;                                   / *       0 x 8       0 x 8   * / i n t                                                 m a x l e n ;                               / *     0 x 1 0       0 x 4   * / u m o d e _ t                                         m o d e ;                                   / *     0 x 1 4       0 x 2   * / s t r u c t   c t l _ t a b l e   *                   c h i l d ;                                 / *     0 x 1 8       0 x 8   * /                 p r o c _ h a n d l e r   *                           p r o c _ h a n d l e r ;                   / *     0 x 2 0       0 x 8   * / s t r u c t   c t l _ t a b l e _ p o l l   *         p o l l ;                                   / *     0 x 2 8       0 x 8   * / v o i d   *                                           e x t r a 1 ;                               / *     0 x 3 0       0 x 8   * / v o i d   *                                           e x t r a 2 ;                               / *     0 x 3 8       0 x 8   * / } ;
s e t _ m e m o r y _ x   s y s c t l 4   p r o c _ h a n d l e r .   c t l _ t a b l e .     s y s c t l     / p r o c     1   s e t _ m e m o r y _ x   1   4 0 9 6   s e t _ m e m o r y _ x 使 W A R N _ O N   d m e s g   使   s h e l l c o d e     s y s c t l 4   s h e l l c o d e     r o o t     s h e l l u s e r f a u l t f d s p r a y   西 d o u b l e   f r e e   使   b u g   使 s y s c t l   K A L S R     R / W   使 使 k e r n e l . u n p r i v i l e g e d _ u s e r n s _ c l o n e   0     P w n 2 O w n   Z D I     P w n 2 O w n     U b u n t u   U b u n t u   h t t p s : / / u b u n t u . c o m / s e c u r i t y / C V E - 2 0 2 1 - 3 4 9 2 C V E - 2 0 1 7 - 1 1 1 7 6 h t t p s : / / b l o g . l e x f o . f r / c v e - 2 0 1 7 - 1 1 1 7 6 - l i n u x - k e r n e l - e x p l o i t a t i o n - p a r t 1 . h t m l h t t p s : / / b l o g . l e x f o . f r / c v e - 2 0 1 7 - 1 1 1 7 6 - l i n u x - k e r n e l - e x p l o i t a t i o n - p a r t 2 . h t m l h t t p s : / / b l o g . l e x f o . f r / c v e - 2 0 1 7 - 1 1 1 7 6 - l i n u x - k e r n e l - e x p l o i t a t i o n - p a r t 3 . h t m l   U s e r f a u l t f d h t t p s   : / / b l o g . l i z z i e . i o / u s i n g - u s e r f a u l t f d . h t m l   U s e r f a u l t f d     S p r a y s h t t p s   : / / d u a s y n t . c o m / b l o g / l i n u x - k e r n e l - h e a p - s p r a y C V E - 2 0 1 7 - 7 3 0 8 h t t p s : / / g o o g l e p r o j e c t z e r o . b l o g s p o t . c o m / 2 0 1 7 / 0 5 / e x p l o i t i n g - l i n u x - k e r n e l - v i a - p a c k e t . h t m l h t t p s : / / g i t h u b . c o m / x a i r y / k e r n e l - e x p l o i t s / t r e e / m a s t e r / C V E - 2 0 1 7 - 7 3 0 8 c o m m i t _ c r e d ( p r e p a r e _ k e r n e l _ c r e d ( 0 ) ) ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则