suidperl 취약점과 대책

보안공지

suidperl 취약점과 대책

영향

  • suidperl 프로그램이 설치된 시스템의 일반사용자는 루트권한을 얻을 수 있다.
  • 영향받는 버전 : sperl 4.x ~ 5.003

설명

  • perl 4.x ~ 5.003 버전의 suidperl(sperl) 프로그램에 존재하는 취약성으로 인하여 일반사용자는 루트권한을 얻을 수 있다.
  • 몇몇 시스템에서 setuid 스크립트들은 커널내의 경쟁상태(race condition)으로 인하여 안전하지 못하다. 이런 취약성을 해결하기위해 perl 버전 4와 5부터는 suidperl, 또는 sperl이란 이름의 프로그램을 포함한다.
  • suidperl 프로그램은 커널에서 set-user-ID와 set-group-ID 프로그램 수행시 처리동작을 에뮬레이션한다.
  • 이를위해 suidperl 프로그램은 먼저 perl 스크립트의 effective-user-ID를 바꾸고 suidperl 프로그램은 변화된 스크립트를 읽어서 effective-user-ID로 해당 스크립트를 수행한다. 이 같은 동작을 위해서는 suidperl 프로그램은 set-user-ID 루트로 설치되야 한다.
  • suidperl의 수행시 사용자에 의해 제공되는 인수에 대한 한계검사의 부족으로 내부스택의 오버플로우가 발생할 가능성이 있으며 공격자는 이를 이용하여 루트권한으로 임의의 명령을 수행할 수 있다.

해결책

0 변경된 사항