at(1) 프로그램의 버퍼오버플로우를 이용하여 일반 사용자가 관리자(root) 권한으로 임의의 명령을 실행시킬 수 있는 보안 취약점이 발견되었다.
at(1) 프로그램은 원하는 시간에 실행시킬 명령들의 일정을 설정하는데 쓰인다.
at(1) 프로그램은 이 명령을 실행시킨 사용자 권한으로 실행되며 일반적으로 그 사용자를 scheduling 사용자라고 한다.
수행할 명령들의 목록은 다른 사용자들이 쓸 수 없는 디렉토리의 파일에 저장하고 파일소유는 scheduling 사용자의 소유가 된다. 그리고 그 정보는 지정된 시간에 명령들을 수행시키는 프로세스를 구별하는데 쓰인다. 이것은 다른 사용자들이 scheduling 사용자의 명령 목록을 변경하거나 새로운 목록을 만드는 것을 방지하기 위한 것으로 이를위해 at에는 setuid root bit가 지정되어 있다.
하지만, 여러 at(1) 프로그램에서 버퍼오버프로우 취약성이 있어 관리자(root)의 권한으로 임의의 명령을 실행시킬 수 있다.
해결책
at(1) 프로그램의 버퍼오버플로우를 이용하여 일반 사용자가 관리자(root) 권한으로 임의의 명령을 실행시킬 수 있는 보안 취약점이 발견되었다.
at(1) 프로그램은 원하는 시간에 실행시킬 명령들의 일정을 설정하는데 쓰인다.
at(1) 프로그램은 이 명령을 실행시킨 사용자 권한으로 실행되며 일반적으로 그 사용자를 scheduling 사용자라고 한다.
수행할 명령들의 목록은 다른 사용자들이 쓸 수 없는 디렉토리의 파일에 저장하고 파일소유는 scheduling 사용자의 소유가 된다. 그리고 그 정보는 지정된 시간에 명령들을 수행시키는 프로세스를 구별하는데 쓰인다. 이것은 다른 사용자들이 scheduling 사용자의 명령 목록을 변경하거나 새로운 목록을 만드는 것을 방지하기 위한 것으로 이를위해 at에는 setuid root bit가 지정되어 있다.
하지만, 여러 at(1) 프로그램에서 버퍼오버프로우 취약성이 있어 관리자(root)의 권한으로 임의의 명령을 실행시킬 수 있다.