Kestrel
CVE-2026-16723DGX_A· 2026년 7월 30일 AM 11:22

[공격] 분석 — 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을 사용해 수신 데이터를 파싱할 때
  • 트리거 조건
    • 입력 JSON에 @type 필드가 포함되고, 해당 값이 JDK/라이브러리 내 존재하는 임의 클래스(예: com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl)이면 자동으로 로딩·실행됨.
    • fastjson 기본 설정(ParserConfig.getGlobalInstance().setAutoTypeSupport(true)가 비활성화돼 있지 않은 경우)만 있으면 추가 AutoType 활성화나 클래스패스 가젯이 필요 없음.
  • 공격 단계
    1. 정찰 – 서비스 문서·Swagger, 오픈 API 목록, 로그 등을 통해 fastjson 사용 여부와 JSON 입력 파라미터를 식별.
    2. 초기 접근 – 위에서 확인한 엔드포인트에 @type이 포함된 악성 JSON을 POST/PUT 등으로 전송. (AV:N)
    3. 실행·권한 획득 – fastjson이 객체를 역직렬화하면서 클래스의 정적 초기화 블록이 실행되어 임의 명령(Runtime.exec)이 수행, 프로세스가 애플리케이션 권한으로 동작(C:H/I:H/A:H).
    4. 지속 – 공격자는 파일 시스템에 악성 JAR·스크립트를 남기거나, 애플리케이션 설정을 변경해 재시작 시 자동 실행하도록 할 수 있음(추정).
    5. 영향 – 전체 서버 장악, 내부 네트워크 이동, 데이터 탈취·파괴 등 전면적인 비즈니스 중단 위험.
  • 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*: 패턴을 차단하고, 차단된 요청을 별도 알림으로 전송.

🛡️ 완화 방안

  1. 패치 – fastjson 1.2.84 이상(또는 최신 버전)으로 즉시 업데이트.
  2. 구성 변경 – 애플리케이션 시작 시 ParserConfig.getGlobalInstance().setAutoTypeSupport(false) 로 AutoType 전역 비활성화.
  3. 입력 검증 – JSON 스키마 기반 화이트리스트 적용, @type 필드가 포함된 요청을 차단.
  4. 런타임 방어 – SecurityManager(가능한 경우) 또는 컨테이너/VM 격리를 통해 Java 프로세스 권한 최소화.
  5. 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
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…