Tomcat 보안취약점 패치 버전 업데이트 권장
계속해서 업데이트 되는 Tomcat 버전에도 버전 별로 보안취약점이 발견되고, 패치되고 있다.
취약점 발견 버전을 사용하고 있는 경우 보안 위험이 존재하므로 패치된 버전으로 변경하는 것을 권장하고 있다.
그래서 Tomcat 버전 별 보안취약점에 대해 정리해보았다.
# Tomcat 보안취약점 패치 버전 업데이트 권고
* 권장 Tomcat 버전: 8.5.11 / 8.0.41 / 7.0.75 / 6.0.50
* 권장 Tomcat JK connector 버전: 1.2.42
* 권장 Apache Standard Taglib 버전: 1.2.3
Tomcat 보안 취약점 패치 적용 버전 업데이트 권고 |
|||||
중요도 |
취약점 발견 버전 |
보안 취약점 |
취약점 상세 |
권장 Tomcat 버전 |
참고 |
Moderate |
8.5.7 ~ 8.5.9 |
정보 노출 취약점 (information disclosure) |
ByteBuffer를 사용할 때, 동일 connection의 여러 요청 간에 정보 유출 위험이 존재한다. ByteBuffer는 I/O가 일어날 때 주고 받을 때 데이터를 일시적으로 담고 있는 역할을 하는 클래스다. 이러한 취약점은 Apache 등의 웹서버를 함께 사용하는 경우 사용자 간의 정보 유출도 초래할 위험이 있다. |
8.5.11 |
* ByteBuffer 클래스: fast low level I/O를 수행할 때, 일시적으로 데이터를 담아놓기 위해 사용. |
important |
8.0.0 ~ 8.0.39 |
정보 노출 취약점 (information disclosure) |
Tomcat의 connector protocol 중 NIO HTTP connector를 사용할 경우, 복수의 요청을 처리하는데 동일한 processor가 사용되어 세션 ID 및 응답 정보가 유출 될 위험이 있다. 프로세서를 공유하게 되면 session ID를 포함한 request와 response body 사이의 정보 노출 위험이 존재한다. |
8.0.41 |
* NIO: New Input/Ouput stream.
Non-blocking protocol. |
important |
7.0.0 ~ 7.0.73 |
정보 노출 취약점 (information disclosure) |
파일 전송 코드를 사용할 때, Tomcat의 connector protocol 중 NIO HTTP connector를 사용할 경우, 복수의 요청을 처리하는데 동일한 processor가 사용되어 세션 ID 및 응답 정보가 유출 될 위험이 있다. 프로세서를 공유하게 되면 session ID를 포함한 request와 response body 사이의 정보 노출 위험이 존재한다. |
7.0.75 |
|
important |
7.0.0 ~ 7.0.72 |
Jmx 원격코드 실행 취약점 (Remote code execution) |
Jmx에서 CVE-2016-3427 에 대한 패치를 반영하지 않아 발생하는 취약점이다. Jmx(Java Management eXtension)는 자바 서비스들을 관리하고 모니터링하기 위한 API를 제공하는 기능을 포함한 기술로, 발견된 취약점 CVE-2016-3427은 Java SE 8u77, JRockit R28.3.9를 사용할 때 Jmx를 통해 기밀성·무결성·가용성에 영향을 줄 수 있는 취약점이다. |
* CVE-2016-3427: Java SE 8u77, JRockit R28.3.9를 사용할 때 Jmx를 통해 기밀성, 무결성, 가용성에 영향을 줄 수 있는 취약점 * JMX(Java Management Extension): JVM의 메모리나 쓰레드 및 VM 내부 정보 등의 자바 서비스들을 관리하고 모니터링 하기 위한 API를 제공하는 기술. |
|
important |
6.0.0 ~ 6.0.48 |
정보 노출 취약점 (information disclosure) |
파일 전송 코드를 사용할 때, Tomcat의 connector protocol 중 NIO HTTP connector를 사용할 경우, 복수의 요청을 처리하는데 동일한 processor가 사용되어 세션 ID 및 응답 정보가 유출 될 위험이 있다. 프로세서를 공유하게 되면 session ID를 포함한 request와 response body 사이의 정보 노출 위험이 존재한다. |
6.0.50 |
|
important |
6.0.0 ~ 6.0.47 |
Jmx 원격코드 실행 취약점 (Remote code execution) |
Jmx에서 CVE-2016-3427 에 대한 패치를 반영하지 않아 발생하는 취약점이다. Jmx(Java Management eXtension)는 자바 서비스들을 관리하고 모니터링하기 위한 API를 제공하는 기능을 포함한 기술로, 발견된 취약점 CVE-2016-3427은 Java SE 8u77, JRockit R28.3.9를 사용할 때 Jmx를 통해 기밀성·무결성·가용성에 영향을 줄 수 있는 취약점이다. |
* CVE-2016-3427: Java SE 8u77, JRockit R28.3.9를 사용할 때 Jmx를 통해 기밀성, 무결성, 가용성에 영향을 줄 수 있는 취약점 |
|
Moderate |
Tomcat JK Connector 1.2.0 ~ 1.2.41 |
Buffer Overflow |
Virtual host 매핑 룰을 생성하기 위해 가상 호스트명과 URI이 연결되는데, buffer에 write하기 전에 virtual host 명에대한 길이 체크를 하지 않아, 잠재적으로 buffer overflow 취약점이 존재한다. à 원격지의 공격자가 overflow를 유발하는 아주 긴 URL 요청을 보내 시스템 상의 임의의 코드를 실행시키는 등의 공격으로 프로그램 오류 발생 가능. |
1.2.42 |
* Buffer Overflow: 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램
취약점. 프로세스가 데이터를 buffer에 저장할 때
프로그래머가 지정한 곳 바깥에 저장해 버리는 것이다. |
Important |
Apache
Standard Taglib |
정보 노출 취약점 |
Apache Standard Taglibs 1.2.3 이전의 버전들은 악의적인 사용자가 원격으로 임의의 코드를 실행하거나, XXE injection 공격을 행할 수 있다. |
1.2.3
|
* XXE(XML eXternal Entity) injection: XML 문서에서 동적으로 외부 URI의 리소스를 포함시킬 수 있는 external entity를 사용하여 서버의 로컬파일 열람, denial of service 등을 유발할 수 있는 취약점으로, XML Request를 파싱하는 페이지에서 발생한다. |