본문 바로가기

Tip

[Tomcat] 취약점(CVE-2020-1938) Tomcat7.0.100으로 업그레이드

초보개발자에게 너무 힘든 경험이었음.

 

취약점문제 : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1938

내 생각엔 신뢰있는 AJP연결을 위한 것으로 보임

 

취약버전

- 9.0.0 ~ 9.0.30

- 8.5.0 ~ 8.5.50

- 7.0.0 ~ 7.0.99

 

현재 톰캣버전 : 7.0.72

변경 톰캣버전 : 7.0.100

 

사이트상황 : SunOS? Solaris? (웹서버 Apache 2.4.25) + Window server 2012 R2(WAS), mod_jk (1.2.42) connector 연동

 

기존의 톰캣을 삭제하기에는 원복이 두려웠다..

 

- 7.0.100 zip파일 압축 해제하고 apache~ 폴더를 기존 톰캣에 있는 폴더로 이동

- 윈도우 서비스에 등록되어있는 톰캣 중지 후 사용안함으로 수정

- 기존 server.xml에 connector 8080, 8443, 8009 등 미사용포트로 변경, hostname도 수정

- 어플리케이션을 신규 ROOT 폴더로 복사/붙여넣기

- 신규 server.xml AJP connector 주석 해제 및 secretRequired="false" 추가

- 신규 bin/service.bat 편집 default service name을 변경 tomcat7 -> tomcat7.0.100

- bin/tomcat7.exe랑 tomcat7w.exe였나 이것도 변경 tomcat7.0.100.exe, tomcat7.0.100w.exe

- 윈도우 서비스 cmd 통해서 신규 톰캣 등록 service.bat install

- 신규 tomcat7.0.100.exe 실행하고 등록되있는 윈도우 서비스 [자동] 시작

 

서비스를 테스트 할 수 없어서 WAS에서 netstat로 통신되는지 확인

물론, 웹서버에서도 netstat로 확인 가능

또 mod_jk.log통해서도 확인 가능

 

신규 톰캣의 bin/lib만 기존 톰캣에 덮어써도 될 것 같긴한데 원복이 무서워서 안해봤음.

 

알게된사실)

너도 나도 웹서버나 WAS를 건들려고 하지 않는다(오픈소스라 그런가..)

workers.properties였나 거기에 tomcat_home을 안넣어서 연동 안되는 줄 알았음

SunOS는 Apache/Apache2를 기본으로 설치되있다고함

AJP Connector가 뭔지 알게 되서 다행(미사용일 경우, 주석 처리)

진짜 안되면 reverse proxy(mod_proxy)로 테스트해야하나 싶었음(하는게 좋을지도?)

Apache는 건드는게 아니다..

 

아무 일 없으면 좋겠다..

 

 

출처 및 참고

https://nirsa.tistory.com/132?category=876464

https://eastpost95.blogspot.com/2020/03/apache-tomcat-ajp-cve-2020-1938-apache.html  

https://velog.io/@wosk0106/CVE-2020-1938