Sendmail은 Mail Transfer Agent(MTA)로 가장 널리 사용되고 있는 Application 이다.
그런데 이 sendmail 버전 8.11.0에서 8.11.5사이의 일부 버전과 8.12 beta버전 중의 일부가 내부공격자로 하여금 불법적인 관리자권한을 획득할 수 있게 하는 내부 취약점을 가지고 있는 것으로 밝혀졌다. 하지만, 이 취약점은 8.10 이전의 버전에는 존재하지 않는다.
구체적인 원리를 설명하자면, sendmail내 debugging 함수(tTflag())의 입력 validation에 에러가 존재하는데 이 취약점을 이용한 공격이 가능하다.
이 함수는 "-d" option을 이용하여 "trace vector"의 index값으로 부호화된 정수를 사용한다. 그러나 이 함수는 음수값을 검사하지 않기 때문에, 내부 공격자가 파라미터로 매우 큰수(vector의 범위를 벗어난)를 사용함으로써 부호화된 정수 overflow를 일으켜 관리자 권한을 획득할 수 있는 것이다.
2. 결함기종
Sendmail Consortium Sendmail 8.12beta7
Sendmail Consortium Sendmail 8.12beta5
Sendmail Consortium Sendmail 8.12beta16
Sendmail Consortium Sendmail 8.12beta12
Sendmail Consortium Sendmail 8.12beta10
Sendmail Consortium Sendmail 8.11.5
Sendmail Consortium Sendmail 8.11.4
Sendmail Consortium Sendmail 8.11.3
Sendmail Consortium Sendmail 8.11.2
Sendmail Consortium Sendmail 8.11.1
Sendmail Consortium Sendmail 8.11
3. 해결책
현재 사용중인 Sendmail의 버젼에 따라 다음과 같이 업그레이드 한다.
1. 모든 Sendmail 8.12beta 버전 -> sendmail.8.12.0.Beta19로 업그레이드.
ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.12.0.Beta19.tar.gz
2. Sendmail 8.11.0에서 8.11.5 버전 -> sendmail.8.11.6 으로 업그레이드.
ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.11.6.tar.gz