※Apache Struts2 취약점(CVE-2017-5638) 보안업데이트
▶취약점 내용
jakarta 플러그인을 이용하여 파일 업로드 시 원격에서 임의의 코드를 실행할 수 있는
취약점으로, HTTP Request헤더의 Content-Type값을 변조하여 원격 코드 실행 가능
▶취약한 버전
Apache Struts 2.3.5 ~ 2.3.31 버전
Apache Struts 2.5 ~ 2.5.10 버전
▶보안업데이트 버전
Apache Struts 2.3.32 또는 Apache Struts 2.5.10.1
※웹 취약점 점검 및 조치
▷취약점이 해결 된 버전(Apache Struts 2.3.32 또는 Apache Struts 2.5.10.1)으로 업데이트
(권고)
▷Content-Type에 엄격한 필터링 적용 및 ognl 표현식과 사용 금지
▷commons-fileupload-x.x.x.jar 파일 삭제 (해당 파일 삭제시 업로드 기능 사용 불가)
▷보안 솔루션 사용
※권고 예시) Apache Struts 2.3.15.3 에서 Apache Struts 2.3.32 업데이트 방법
1. 버전확인
/web/WEB-INF/lib 에 struts-core.x.x.x.jar 파일 확인
struts-core.x.x.x.jar 압축해제 > META-INF > MANIFEST.MF 파일에 버전 확인
2. 현재 사용하고 있는 jar파일 삭제
3. 2.3.32 버전에 맞는 jar파일 추가 (첨부파일 확인)
*apache 공식 홈페이지에 접속하여 최신 파일 다운로드 가능 http://struts.apache.org/download.cgi
4. 서버 재가동
*오류1: /web/WEB-INF/lib/servlet-api.jar - jar not loaded ...
해결방안: /apache-tomcat-x.x.x/lib의 servlet-api.jar 파일과 /web/WEB-INF/lib의 servlet-api.jar 파일이 중복되어
발생하므로, /web/WEB-INF/lib 안에 있는 servlet-api.jar 파일을 삭제
*오류2: Unable to load configuration. - bean - jar: ...
해결방안: lib 폴더에 해당 jar파일이 없는 경우 또는 jar파일의 버전이 맞지 않거나,
로드시 다른 jar파일의 문제일 수 있으므로, jar파일 확인이 필요