o Apache 소프트웨어 재단은 Apache Tomcat에 영향을 주는 원격 코드 실행 취약점을 해결한 보안 업데이트 발표
o 취약점 버전을 사용 중일 경우 웹 쉘 업로드로 인한 피해가 발생할 수 있으므로 서버의 담당자는 해결 방안에 따라
최신 버전으로 업데이트 권고

□ 설명
o 서버에서 HTTP PUT 메소드를 사용하도록 설정한 경우 특수하게 조작된 Request 요청을 통해 JSP 파일을 서버에 업로드할
수 있는 원격 코드 실행 취약점(CVE-2017-12617)

□ 영향을 받는 버전
o Apache Tomcat 9.0.0.M1 - 9.0.0
o Apache Tomcat 8.5.0 ~ 8.5.22
o Apache Tomcat 8.0.0.RC1 ~ 8.0.46
o Apache Tomcat 7.0.0 ~ 7.0.81

□ 해결 방안
o Apache Tomcat 9.x 버전 사용자
- Apache Tomcat 9.0.1 버전으로 업그레이드 [1]
o Apache Tomcat 8.x 버전 사용자
- Apache Tomcat 8.0.47 버전 혹은 8.5.23 버전으로 업그레이드 [2]
o Apache Tomcat 7.x 버전 사용자
- Apache Tomcat 7.0.82 버전으로 업그레이드 [3]



[참고사이트]
[1] http://tomcat.apache.org/security-9.html
[2] http://tomcat.apache.org/security-8.html
[3] http://tomcat.apache.org/security-7.html

저작자 표시 비영리 변경 금지
신고
블로그 이미지

Ryansecurity Ryansecurity

Life is fun security story

Tag apache

CVE-2017-12617 Apache Tomcat Remote Code Execution via JSP Upload

Severity: Important

Vendor: The Apache Software Foundation

Versions Affected:
Apache Tomcat 9.0.0.M1 to 9.0.0
Apache Tomcat 8.5.0 to 8.5.22
Apache Tomcat 8.0.0.RC1 to 8.0.46
Apache Tomcat 7.0.0 to 7.0.81

Description:
When running with HTTP PUTs enabled (e.g. via setting the readonly
initialisation parameter of the Default servlet to false) it was
possible to upload a JSP file to the server via a specially crafted
request. This JSP could then be requested and any code it contained
would be executed by the server.

Mitigation:
Users of the affected versions should apply one of the following
mitigations:
- Upgrade to Apache Tomcat 9.0.1 or later
- Upgrade to Apache Tomcat 8.5.23 or later
- Upgrade to Apache Tomcat 8.0.47 or later
- Upgrade to Apache Tomcat 7.0.82 or later

Credit:
This issue was first reported publicly followed by multiple reports to
the Apache Tomcat Security Team.

History:
2017-10-03 Original advisory

References:
[1] http://tomcat.apache.org/security-9.html
[2] http://tomcat.apache.org/security-8.html
[3] http://tomcat.apache.org/security-7.html

저작자 표시 비영리 변경 금지
신고
블로그 이미지

Ryansecurity Ryansecurity

Life is fun security story

Tag apache

Possible Remote Code Execution attack when using the Struts REST plugin with XStream handler to handle XML payloads
Who should read this

All Struts 2 developers and users

Impact of vulnerability

A RCE attack is possible when using the Struts REST plugin with XStream handler to deserialise XML requests

Maximum security rating

Critical

Recommendation

Upgrade to Struts 2.5.13

Affected Software

Struts 2.5 - Struts 2.5.12

Reporter

Man Yue Mo <mmo at semmle dot com> (lgtm.com / Semmle). More information on the lgtm.com blog: https://lgtm.com/blog

CVE Identifier

CVE-2017-9805

Problem
The REST Plugin is using a XStreamHandler with an instance of XStream for deserialization without any type filtering and this can lead to Remote Code Execution when deserializing XML payloads.

Solution

Upgrade to Apache Struts version 2.5.13.

Backward compatibility
It is possible that some REST actions stop working because of applied default restrictions on available classes. In such case please investigate the new interfaces that was introduced to allow define class restrictions per action, those interfaces are:

org.apache.struts2.rest.handler.AllowedClasses
org.apache.struts2.rest.handler.AllowedClassNames
org.apache.struts2.rest.handler.XStreamPermissionProvider
Workaround
No workaround is possible, the best option is to remove the Struts REST plugin when not used or limit it to server normal pages and JSONs only:

<constant name="struts.action.extension" value="xhtml,,json" />

저작자 표시 비영리 변경 금지
신고
블로그 이미지

Ryansecurity Ryansecurity

Life is fun security story

Tag apache

Apache Struts에서 임의 코드 실행이 가능한 취약점이 발견 [1]
o 취약한 버전을 사용 중인 서버의 담당자는 악성코드 감염 등의 위험이 있으므로 아래 해결 방안에 따른 조치 권고


□ 내용
o Struts2에서 제공하는 웹 애플리케이션 Showcase의 SaveGangsterAction 페이지에서 ActionMessages.class를 통해 특정
입력 값을 처리할 때 원격 코드 실행을 가능하게 하는 취약점(CVE-2017-9791)


□ 영향을 받는 제품 및 버전
o Apache Struts 2.3.x 버전에서 Struts1 플러그인을 사용하는 경우
※ Apache Struts2는 Struts 1의 Action을 사용하기 위해 Struts1 플러그인 기본 제공


□ 해결 방안
o 취약점에 영향을 받지 않는 버전으로 업데이트 수행
- Apache Struts 2.5.10.1 버전 [2]
o SaveGangsterAction.java에서 ActionMessage.class에 메시지를 전달할 때 값을 직접 전달하는 대신 리소스 키를 사용하도록
소스코드 변경 후 컴파일
※ SaveGangsterAction.java 파일 경로 : showcase가 설치된 폴더 하위의 \src\org\apache\struts2\integration
\SaveGangsterAction.java (설치 환경에 따라 경로 확인 필요)

기존 소스 코드 messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added"));
변경 소스 코드 messages.add("msg", new ActionMessage("struts1.gangsterAdded", gform.getName()));
o 보안규칙(2종) : 우회 취약경로(/struts2-showcase/integration/saveGangster.action)에 대한 추가 차단
※ 보안규칙은 각 기관 환경에 맞춰 검토 후 적용 필요
alert tcp any any -> any any (content:"/saveGangster.action"; nocase; content:"HTTP/1."; distance:0;)
alert tcp any any -> any any (content:"/struts2-showcase"; nocase; content:"HTTP/1."; distance:0;)




[참고사이트]
[1] https://cwiki.apache.org/confluence/display/WW/S2-048
[2] https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.10.1

저작자 표시 비영리 변경 금지
신고
블로그 이미지

Ryansecurity Ryansecurity

Life is fun security story

Tag apache

티스토리 툴바