[20498] 2021-01-28_CVE-2021-3156:Sudo中基于堆的缓冲区溢出(BaronSamedit)

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2021-01-28_CVE-2021-3156:Sudo中基于堆的缓冲区溢出(BaronSamedit) C V E - 2 0 2 1 - 3 1 5 6 S u d o   ( B a r o n   S a m e d i t ) K h a n   2 0 2 1 - 0 1 - 2 8 C V E - 2 0 2 1 - 3 1 5 6 S u d o   ( B a r o n   S a m e d i t )                         s u d o U n i x 使 使 s u d o r o o t                         S u d o U n i x L i n u x S u d o 使 2 0 1 1 7 8 2 5 5 e d 6 9 1 . 8 . 2 1 . 8 . 3 1 p 2 1 . 9 . 0 1 . 9 . 5 p 1                         r o o t Q u a l y s U b u n t u 2 0 . 0 4 S u d o   1 . 8 . 3 1 D e b i a n   1 0 S u d o   1 . 8 . 2 7 F e d o r a   3 3 S u d o   1 . 9 . 2 r o o t                                                 h t t p s : / / p l a y e r . v i m e o . c o m / v i d e o / 5 0 4 8 7 2 5 5 5 S u d o   s h e l l s h e l l   - c - s S u d o M O D E _ S H E L L   - i S u d o M O D E _ S H E L L M O D E _ L O G I N _ S H E L L S u d o   m a i n p a r s e _ a r g s 5 8 7 - 5 9 5 5 9 0 - 5 9 1 a r g v 6 0 9 - 6 1 7   5 7 1           i f   ( I S S E T ( m o d e ,   M O D E _ R U N )   & &   I S S E T ( f l a g s ,   M O D E _ S H E L L ) )   {   5 7 2                   c h a r   * * a v ,   * c m n d   =   N U L L ;   5 7 3                   i n t   a c   =   1 ;   . . .   5 8 1                           c m n d   =   d s t   =   r e a l l o c a r r a y ( N U L L ,   c m n d _ s i z e ,   2 ) ;   . . .   5 8 7                           f o r   ( a v   =   a r g v ;   * a v   ! =   N U L L ;   a v + + )   {   5 8 8                                   f o r   ( s r c   =   * a v ;   * s r c   ! =   ' 0 ' ;   s r c + + )   {  
s u d o e r s _ p o l i c y _ m a i n s e t _ c m n d   u s e r _ a r g s 8 6 4 - 8 7 1 8 6 6 - 8 6 7 s u d o e r s 8 6 6   f r o m   [ 0 ]   f r o m   [ 1 ] 8 6 7   f r o m 8 6 8   u s e r _ a r g s   f r o m 8 6 5 - 8 6 9   w h i l e   u s e r _ a r g s s e t _ c m n d   u s e r _ a r g s 8 5 2 - 8 5 3 5 8 8                                   f o r   ( s r c   =   * a v ;   * s r c   ! =   ' 0 ' ;   s r c + + )   {   5 8 9                                           / *   q u o t e   p o t e n t i a l   m e t a   c h a r a c t e r s   * / 5 9 0                                           i f   ( ! i s a l n u m ( ( u n s i g n e d   c h a r ) * s r c )   & &   * s r c   ! =   ' _ '   & &   * s r c   ! =   ' - '   & &   * s r c   ! =   ' $ ' )   5 9 1                                                   * d s t + +   =   ' ' ;   5 9 2                                           * d s t + +   =   * s r c ;   5 9 3                                   }   5 9 4                                   * d s t + +   =   '   ' ;   5 9 5                           }   . . .   6 0 0                           a c   + =   2 ;   / *   - c   c m n d   * / . . .   6 0 3                   a v   =   r e a l l o c a r r a y ( N U L L ,   a c   +   1 ,   s i z e o f ( c h a r   * ) ) ;   . . .   6 0 9                   a v [ 0 ]   =   ( c h a r   * ) u s e r _ d e t a i l s . s h e l l ;   / *   p l u g i n   m a y   o v e r r i d e   s h e l l   * / 6 1 0                   i f   ( c m n d   ! =   N U L L )   {   6 1 1                           a v [ 1 ]   =   " - c " ;   6 1 2                           a v [ 2 ]   =   c m n d ;   6 1 3                   }   6 1 4                   a v [ a c ]   =   N U L L ;   6 1 5 6 1 6                   a r g v   =   a v ;   6 1 7                   a r g c   =   a c ;   6 1 8           } 8 1 9           i f   ( s u d o _ m o d e   &   ( M O D E _ R U N   |   M O D E _ E D I T   |   M O D E _ C H E C K ) )   {   . . .   8 5 2                           f o r   ( s i z e   =   0 ,   a v   =   N e w A r g v   +   1 ;   * a v ;   a v + + )   8 5 3                                   s i z e   + =   s t r l e n ( * a v )   +   1 ;   8 5 4                           i f   ( s i z e   = =   0   | |   ( u s e r _ a r g s   =   m a l l o c ( s i z e ) )   = =   N U L L )   {   . . .   8 5 7                           }   8 5 8                           i f   ( I S S E T ( s u d o _ m o d e ,   M O D E _ S H E L L | M O D E _ L O G I N _ S H E L L ) )   {   . . .   8 6 4                                   f o r   ( t o   =   u s e r _ a r g s ,   a v   =   N e w A r g v   +   1 ;   ( f r o m   =   * a v ) ;   a v + + )   {   8 6 5                                           w h i l e   ( * f r o m )   {   8 6 6                                                   i f   ( f r o m [ 0 ]   = =   ' '   & &   ! i s s p a c e ( ( u n s i g n e d   c h a r ) f r o m [ 1 ] ) )   8 6 7                                                           f r o m + + ;   8 6 8                                                   * t o + +   =   * f r o m + + ;   8 6 9                                           }   8 7 0                                           * t o + +   =   '   ' ;   8 7 1                                   }   . . .   8 8 4                           }   . . .   8 8 6           }
M O D E _ S H E L L M O D E _ L O G I N _ S H E L L 8 5 8 M O D E _ S H E L L 5 7 1 p a r s e _ a r g s s e t _ c m n d p a r s e _ a r g s M O D E _ S H E L L M O D E _ E D I T M O D E _ C H E C K 访 M O D E _ R U N M O D E _ E D I T - e 3 6 1 M O D E _ C H E C K - l 4 2 3 5 1 9 p a r s e _ a r g s v a l i d _ f l a g s 3 6 3 4 2 4 M O D E _ S H E L L   M O D E _ S H E L L 5 3 2 - 5 3 3 退   s u d o e d i t   s u d o S u d o p a r s e _ a r g s M O D E _ E D I T 2 7 0   v a l i d _ f l a g s   v a l i d _ f l a g s M O D E _ S H E L L 1 2 7 2 4 9   s u d o e d i t   - s M O D E _ E D I T M O D E _ S H E L L M O D E _ R U N   u s e r _ a r g s 8 1 9           i f   ( s u d o _ m o d e   &   ( M O D E _ R U N   |   M O D E _ E D I T   |   M O D E _ C H E C K ) )   {   . . .   8 5 8                           i f   ( I S S E T ( s u d o _ m o d e ,   M O D E _ S H E L L | M O D E _ L O G I N _ S H E L L ) )   { 5 7 1           i f   ( I S S E T ( m o d e ,   M O D E _ R U N )   & &   I S S E T ( f l a g s ,   M O D E _ S H E L L ) )   { 3 5 8                                   c a s e   ' e ' :   . . .   3 6 1                                           m o d e   =   M O D E _ E D I T ;   3 6 2                                           s u d o _ s e t t i n g s [ A R G _ S U D O E D I T ] . v a l u e   =   " t r u e " ;   3 6 3                                           v a l i d _ f l a g s   =   M O D E _ N O N I N T E R A C T I V E ;   3 6 4                                           b r e a k ;   . . .   4 1 6                                   c a s e   ' l ' :   . . .   4 2 3                                           m o d e   =   M O D E _ L I S T ;   4 2 4                                           v a l i d _ f l a g s   =   M O D E _ N O N I N T E R A C T I V E | M O D E _ L O N G _ L I S T ;   4 2 5                                           b r e a k ;   . . .   5 1 8           i f   ( a r g c   >   0   & &   m o d e   = =   M O D E _ L I S T )   5 1 9                   m o d e   =   M O D E _ C H E C K ;   . . .   5 3 2           i f   ( ( f l a g s   &   v a l i d _ f l a g s )   ! =   f l a g s )   5 3 3                   u s a g e ( 1 ) ; 1 2 7   # d e f i n e   D E F A U L T _ V A L I D _ F L A G S           ( M O D E _ B A C K G R O U N D | M O D E _ P R E S E R V E _ E N V | M O D E _ R E S E T _ H O M E | M O D E _ L O G I N _ S H E L L | M O D E _ N O N I N T E R A C T I V E | M O D E _ S H E L L )   . . .   2 4 9           i n t   v a l i d _ f l a g s   =   D E F A U L T _ V A L I D _ F L A G S ;   . . .   2 6 7           p r o g l e n   =   s t r l e n ( p r o g n a m e ) ;   2 6 8           i f   ( p r o g l e n   >   4   & &   s t r c m p ( p r o g n a m e   +   p r o g l e n   -   4 ,   " e d i t " )   = =   0 )   {   2 6 9                   p r o g n a m e   =   " s u d o e d i t " ;   2 7 0                   m o d e   =   M O D E _ E D I T ;   2 7 1                   s u d o _ s e t t i n g s [ A R G _ S U D O E D I T ] . v a l u e   =   " t r u e " ;   2 7 2           } s u d o e d i t   - s   ' '   ` p e r l   - e   ' p r i n t   " A "   x   6 5 5 3 6 ' `  
1   u s e r _ a r g s 8 5 2 - 8 5 4 2 8 5 2 - 8 5 3 3 8 6 6 - 8 6 8 u s e r _ a r g s a m d 6 4   L i n u x 2 4   u s e r _ a r g s 3 2   A   =   a     0 B   =   b   0 0 x 0 0 6 2 3 d 4 2 0 0 6 1 3 d 4 1 f d   C   =   c     0 D   =   d     0 0 x 0 0 6 4 3 d 4 4 0 0 6 3 3 d 4 3 b k   E   =   e   0 F   =   f     0 0 x 0 0 6 6 3 d 4 6 0 0 6 5 3 d 4 5 Q u a l y s Q I D   3 7 4 8 9 1 S u d o Q I D v u l n s i g s V U L N S I G S - 2 . 5 . 9 0 - 4 L i n u x   C l o u d   A g e n t l x _ m a n i f e s t - 2 . 5 . 9 0 . 4 - 3 h t t p s : / / b l o g . q u a l y s . c o m / v u l n e r a b i l i t i e s - r e s e a r c h / 2 0 2 1 / 0 1 / 2 6 / c v e - 2 0 2 1 - 3 1 5 6 - h e a p - b a s e d - b u f f e r - o v e r f l o w - i n - s u d o - b a r o n - s a m e d i t h t t p s : / / w w w . q u a l y s . c o m / 2 0 2 1 / 0 1 / 2 6 / c v e - 2 0 2 1 - 3 1 5 6 / b a r o n - s a m e d i t - h e a p - b a s e d - o v e r f l o w - s u d o . t x t m a l l o c ( ) :   c o r r u p t e d   t o p   s i z e   A b o r t e d   ( c o r e   d u m p e d ) e n v   - i   ' A A = a '   ' B = b '   ' C = c '   ' D = d '   ' E = e '   ' F = f '   s u d o e d i t   - s   ' 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   - - | - - - - - - - - + - - - - - - - - + - - - - - - - - + - - - - - - - - | - - - - - - - - + - - - - - - - - + - - - - - - - - + - - - - - - - - + - -       |                 |                 | 1 2 3 4 5 6 7 8 | 9 0 1 2 3 4 5 6 | 7 8 9 0 1 2 . A | A = a . B = b . | C = c . D = d . | E = e . F = f . |   - - | - - - - - - - - + - - - - - - - - + - - - - - - - - + - - - - - - - - | - - - - - - - - + - - - - - - - - + - - - - - - - - + - - - - - - - - + - -                               s i z e     < - - - -   u s e r _ a r g s   b u f f e r   - - - - >     s i z e             f d               b k
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则