Apache Struts 2 동적 메서드 호출(DMI) 원격 코드 실행 취약점 (CVE-2016-3081, S2-032)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTApache Struts 2.3.19 ~ 2.3.28 버전 중 DMI(Dynamic Method Invocation) 기능이 활성화된 환경
공격자가 특수하게 조작된 HTTP 요청을 통해 서버 권한으로 임의의 코드를 실행(RCE)하고 시스템을 완전히 장악할 수 있음
Struts 버전을 2.3.20.3, 2.3.24.3 또는 2.3.28.1 이상으로 즉시 업데이트하고, DMI 설정을 비활성화(false) 처리
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
PATCH & WORKAROUND- 최신 보안 패치가 적용된 버전으로 업그레이드하십시오.
- Struts 2.3.20.3, 2.3.24.3, 2.3.28.1 이상으로 업데이트
struts.xml설정 파일에서 DMI 기능을 비활성화하십시오.
<constant name="struts.enable.DynamicMethodInvocation" value="false" />- WAF(웹 방화벽)를 사용하는 경우, 페이로드 내에
method:접두사와 OGNL 특수 문자(#,@,java.lang.Runtime)가 포함된 요청을 차단하는 규칙을 적용하십시오.
내 GitHub/GitLab 레포지토리에 이 취약한 패키지가 숨어 있는지 30초 만에 스캔하세요
간접 의존성(Transitive Dependency)에 포함된 취약점은 수동 확인이 불가능합니다. Git 연동 한 번으로 취약 버전 탐지부터 호환성을 유지하는 최소 버전 업그레이드 PR까지 자동 생성하세요.
취약점 발생 원리 및 공격 메커니즘
본 취약점(S2-032)은 Apache Struts 2의 DMI(Dynamic Method Invocation) 기능이 활성화되어 있을 때 발생합니다. 공격자는 URL 파라미터에 'method:' 접두사를 사용하여 OGNL(Object-Graph Navigation Language) 표현식을 주입할 수 있습니다. Struts 프레임워크가 이 접두사 뒤의 값을 적절히 검증하지 않고 실행 엔진으로 전달함에 따라, 공격자는 체인된 OGNL 표현식을 통해 샌드박스를 우회하고 운영체제 명령어를 직접 실행할 수 있게 됩니다. CISA KEV에 등재된 만큼 실제 공격 사례가 빈번하며, EPSS 점수가 매우 높아 즉각적인 대응이 필요합니다.
공식 보안 권고문 및 참조 링크
Apache Struts 2.3.19 to 2.3.20.2, 2.3.21 to 2.3.24.1, and 2.3.25 to 2.3.28, when Dynamic Method Invocation is enabled, allow remote attackers to execute arbitrary code via method: prefix, related to chained expressions.
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.