IRIX eject 버퍼오버플로우 취약점과 대책
2021.02.14 01:25
설명
- IRIX 6.2 시스템에 제공되는 eject(1) 프로그램에서 일반 사용자가 관리자(root) 권한을 얻을 수 있는 보안 취약성이 발견되었다.
- eject(1) 프로그램은 분리가능한 플로피, CDROM, 테이프등과 같은 매체를 장치로부터 꺼내는 프로그램으로 플로피나 CDROM이 마운트되어 있으면 먼저 언마운트를 하게된다.
- eject 프로그램은 사용자가 제공하는 인수들에 대한 길이를 충분히 검사하지않아 일반 사용자가 조작된 인수를 넘겨줌으로서 내부 스택영역을 덮어쓰는 방법으로 임의의 명령을 실행시킬 수 있다. 더구나 eject 프로그램은 setuid root 로 되어있어 관리자(root)의 권한으로 임의의 명령을 실행시킬 수 있다.
- 다음과 같은 명령으로 eject 프로그램이 설치되었는지 확인할 수 있다.
% ls -l /sbin/eject
해결책
- setuid와 관리자(root) 이외의 실행권한을 제거한다.
chmod 500 /sbin/eject
일반 사용자가 eject 프로그램을 사용해야만 한다면 다음의 해결책을 적용하도록 한다. - AUSCERT에서 제공하는 버퍼오버플로우 랩퍼(wrapper)를 설치한다.
ftp://ftp.auscert.org.au/pub/auscert/tools/overflow_wrapper/overflow_wrapper.c
또는, ftp://ftp.auscert.org.au/pub/auscert/tools/AA-97.20-eject_wrapper.tar.Z