[공격] 분석 — CVE-2026-16723
CVE-2026-16723 is a critical fastjson deserialization RCE that can be triggered by sending malicious JSON to any service using the library’s default parser configuration, and it must be patched or mitigated immediately.
📋 요약
- 심각도 critical · CVSS 9.0 · EPSS 0.00413 · 악용난이도 hard
🔍 공격 기법
- 공격 표면
- HTTP/HTTPS API 엔드포인트(POST, PUT 등)에서 요청 본문을
JSON.parseObject()로 바로 역직렬화하는 경우 - 메시지 큐(Kafka, RabbitMQ 등) 혹은 내부 마이크로서비스 간 RPC에서 fastjson을 사용해 수신 데이터를 파싱할 때
- HTTP/HTTPS API 엔드포인트(POST, PUT 등)에서 요청 본문을
- 트리거 조건
- 입력 JSON에
@type필드가 포함되고, 해당 값이 JDK/라이브러리 내 존재하는 임의 클래스(예:com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl)이면 자동으로 로딩·실행됨. - fastjson 기본 설정(
ParserConfig.getGlobalInstance().setAutoTypeSupport(true)가 비활성화돼 있지 않은 경우)만 있으면 추가 AutoType 활성화나 클래스패스 가젯이 필요 없음.
- 입력 JSON에
- 공격 단계
- 정찰 – 서비스 문서·Swagger, 오픈 API 목록, 로그 등을 통해 fastjson 사용 여부와 JSON 입력 파라미터를 식별.
- 초기 접근 – 위에서 확인한 엔드포인트에
@type이 포함된 악성 JSON을 POST/PUT 등으로 전송. (AV:N) - 실행·권한 획득 – fastjson이 객체를 역직렬화하면서 클래스의 정적 초기화 블록이 실행되어 임의 명령(
Runtime.exec)이 수행, 프로세스가 애플리케이션 권한으로 동작(C:H/I:H/A:H). - 지속 – 공격자는 파일 시스템에 악성 JAR·스크립트를 남기거나, 애플리케이션 설정을 변경해 재시작 시 자동 실행하도록 할 수 있음(추정).
- 영향 – 전체 서버 장악, 내부 네트워크 이동, 데이터 탈취·파괴 등 전면적인 비즈니스 중단 위험.
- CVSS 벡터와 실제 조건 매핑
- AV:N (원격 네트워크) → 외부 IP만 있으면 가능
- AC:H (높은 난이도) → 공격자는 정확한 gadget 클래스명을 알아야 함, 하지만 AutoType 비활성화가 필요 없으므로 난이도가 실전에서는 “hard” 수준으로 평가됨(실측 악용예측 EPSS=0.00413).
- PR:N / UI:N (공격자 권한·사용자 상호작용 없음) → 단일 HTTP 요청만으로 성공
💥 영향 분석
- 성공 시 공격자는 Java 프로세스 내부에서 임의 시스템 명령을 실행할 수 있어, 운영 체제 레벨 루트/관리자 권한 획득이 가능함.
- 데이터베이스, 파일 시스템, 네트워크 설정 등 모든 애플리케이션 자산에 무제한 접근이 열림.
- 서비스 중단·데이터 유출·악성 코드 배포 등 전반적인 비즈니스 연속성 위협을 초래함.
🔗 관련 취약점·체이닝
- Deserialization 계열 CWE‑502와 동일하게, 역직렬화가 가능한 다른 라이브러리(예: Jackson, Gson)와 결합하면 동일한
@type기반 공격 체인이 확장될 수 있음(추정). - 내부 신뢰 경계가 무너진 경우(DB·큐에 저장된 직렬화 객체)가 재사용되는 서비스에서 데이터 오염(Taint) 이 발생하면, 최초 진입점이 차단돼도 2차 전파를 통해 RCE가 이루어질 수 있음.
- 다른 취약점(예: 인증 우회 CVE‑XXXX‑YYYY)과 결합하면, 공격자는 먼저 인증을 회피해 API에 접근한 뒤 fastjson 역직렬화를 이용해 최종 권한 상승·코드 실행을 달성하는 인증 → 역직렬화 → RCE 체인을 구성할 수 있음(추정).
🔎 탐지
- 요청 본문/메시지 페이로드에
@type문자열이 포함된 로그를 실시간으로 모니터링. - fastjson 파싱 오류(
JSON.parseObject예외)와 동시에 발생하는 비정상적인 프로세스 생성(java -cp …)을 SIEM에서 연계 감시. - WAF/IPS 규칙으로
(?i)"@type"\s*:패턴을 차단하고, 차단된 요청을 별도 알림으로 전송.
🛡️ 완화 방안
- 패치 – fastjson 1.2.84 이상(또는 최신 버전)으로 즉시 업데이트.
- 구성 변경 – 애플리케이션 시작 시
ParserConfig.getGlobalInstance().setAutoTypeSupport(false)로 AutoType 전역 비활성화. - 입력 검증 – JSON 스키마 기반 화이트리스트 적용,
@type필드가 포함된 요청을 차단. - 런타임 방어 – SecurityManager(가능한 경우) 또는 컨테이너/VM 격리를 통해 Java 프로세스 권한 최소화.
- WAF 정책 – HTTP 본문에서
@type키워드가 포함된 요청을 차단하고, 해당 이벤트를 로그에 기록.
위 조치를 이번 주 내에 적용하면, 다중 소스 데이터 일관성 확인(신뢰도 1.0)과 EPSS 0.00413·hard 등급이 반영된 우선순위 로직(critical CVSS·non‑KEV·scheduled)대로 위험을 충분히 감소시킬 수 있습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.0 · non-KEV · EPSS=0.00413 · exploit=hard · in_scope=None