[공격] 분석 — CVE-2026-16723
Remote Code Execution vulnerability in fastjson (1.2.68-1.2.83) via deserialization without AutoType or gadget requirements; immediate update to a patched version is required.
📋 요약
- 심각도 critical · CVSS 9.0 · EPSS 0.00413 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: fastjson 라이브러리를 사용하는 애플리케이션의 JSON 파싱 엔드포인트에 특수하게 조작된 JSON 페이로드를 전송할 때 발생함. 특히 AutoType 활성화나 별도의 classpath gadget 없이 기본 설정(stock default configuration)만으로 트리거된다는 점이 핵심임.
(2) 공격 단계:
- 정찰: HTTP Request/Response를 분석하여 Java 기반의
fastjson사용 여부 및 버전 확인. - 초기 접근: 인증이 필요 없는 공개 API 엔드포인트 또는 JSON 입력을 받는 파라미터 식별.
- 실행·권한 획득: Deserialization 취약점을 이용해 원격 명령어를 주입하여 OS Command Execution 수행. (전제: 입력값이
JSON.parse()등의 함수로 전달되어야 함) - 지속 및 영향: 웹쉘 업로드 또는 리버스 쉘 연결을 통해 시스템 권한 장악 및 내부망 침투 시도.
(3) 공격 표면: JSON 데이터를 수신하는 모든 HTTP POST/PUT 요청의 Body, REST API 엔드포인트, Content-Type: application/json 헤더를 사용하는 파라미터.
(4) CVSS 벡터 분석:
- AV:N (Network): 원격에서 패킷 전송만으로 공격 가능.
- AC:H (High): 실제 익스플로잇 구현 난이도가 높음(EPSS 0.00413 및 exploit=hard 근거).
- PR:N / UI:N: 인증이나 사용자 상호작용 없이 즉시 실행 가능.
악용 가능성: 본 취약점은 AV:N/AC:H 벡터가 시사하듯 네트워크를 통한 원격 공격이 가능하나, 실제 성공을 위해서는 타겟 서버의 특정 라이브러리 버전과 런타임 환경이 정교하게 일치해야 하는 높은 난이도(hard)를 가집니다. 특히 AutoType 활성화나 별도의 classpath gadget 없이 기본 설정만으로 RCE가 가능하다는 점은 이론적 파급력이 매우 크지만, EPSS(0.00413)와 KEV 미등재 사실은 현재 야생에서 광범위하게 자동화된 공격이 이루어지는 단계는 아님을 의미합니다. 주요 공격 표면은 fastjson 라이브러리를 사용하여 JSON 데이터를 파싱하는 모든 외부 노출 엔드포인트이며, 특히 HTTP Request Body나 API 파라미터로 전달되는 JSON 페이로드가 직접적인 트리거 포인트가 됩니다. 공격자는 정찰 단계에서 응답 헤더나 에러 메시지를 통해 fastjson 사용 여부 및 버전을 식별한 후, 기본 설정의 허점을 이용해 역직렬화 과정에서 임의 객체를 생성하는 경로를 탐색합니다. 결과적으로 이 취약점은 조건만 충족되면 인증 없이(PR:N) 사용자 상호작용 없이(UI:N) 즉시 시스템 권한을 획득할 수 있는 치명적인 경로를 제공하므로, 낮은 EPSS 수치에도 불구하고 잠재적 악용 가능성은 매우 높습니다.
💥 영향 분석
(1) 기술적 위험: 공격자가 대상 서버에서 임의의 OS 명령어를 실행할 수 있는 RCE(Remote Code Execution) 권한을 획득함. 이는 시스템 전체 장악, 민감 데이터 탈취 및 내부 네트워크로의 횡적 이동(Lateral Movement)으로 이어짐.
(2) 비즈니스 영향: 서비스 가용성 상실(시스템 파괴), 고객 데이터 유출로 인한 법적 규제 위반 및 기업 신뢰도 치명적 하락.
🔗 관련 취약점·체이닝
- 추정:
Information Disclosure(버전 정보 노출) $\rightarrow$Deserialization(CVE-2026-16723) $\rightarrow$RCE$\rightarrow$Privilege Escalation(로컬 권한 상승) 순으로 체이닝될 가능성이 높음. - 추정:
CWE-502 (Deserialization of Untrusted Data)유형의 결함이므로, 다른 Java 가젯(Gadget) 라이브러리가 클래스패스에 존재할 경우 공격 경로가 다양해지거나 방어 우회가 쉬워지는 체이닝이 발생할 수 있음.
🔎 탐지
(1) 로그 지표: HTTP Request Body 내에 fastjson에서 사용하는 특수 객체 식별자나 예상치 못한 Java 클래스명이 포함된 패턴 확인.
(2) 탐지 규칙:
- Rule 1 (WAF/IDS):
POST요청의 Body에서@type키워드와 함께 비정상적인 Java 패키지 경로가 포함된 정규식 탐지. ((?i)"@type"\s*:\s*"[^"]*(?:java\.lang|com\.sun|org\.apache)[^"]*") - Rule 2 (SIEM): 단시간 내 동일 IP에서 다양한 JSON 구조의 요청을 반복 전송하는 Brute-force 형태의 페이로드 탐지.
- Rule 3 (EDR): Java 프로세스(
java.exe또는java)가sh,bash,cmd.exe,powershell.exe와 같은 쉘 프로세스를 자식 프로세스로 생성하는 행위 모니터링.
(3) 오탐 시나리오: 정상적인 비즈니스 로직에서@type을 사용하여 다형성(Polymorphism) 데이터를 전송하는 경우. $\rightarrow$ 허용된 클래스 리스트(Allowlist)를 정의하여 대조함으로써 튜닝 가능.
🛡️ 완화 방안
- 즉시(긴급 차단): WAF에서
@type키워드가 포함된 JSON 요청을 일시적으로 차단하거나, 외부 노출 엔드포인트의 접근 제어 리스트(ACL)를 강화함. (난이도: 낮음 / 영향: 일부 정상 기능 차단 가능성 / 검증: WAF 로그 확인) - 단기(완화):
fastjson버전 업그레이드가 불가능할 경우, 입력값에 대한 엄격한 유효성 검사 필터를 적용하여 특수 문자와 클래스 경로 진입을 차단함. (난이도: 중간 / 영향: 성능 저하 미미 / 검증: PoC 페이로드 전송 테스트) - 근본(해결):
fastjson을 취약점이 해결된 최신 버전으로 업데이트하거나, 보안성이 검증된 다른 라이브러리(예: Jackson, Gson)로 교체함. (난이도: 높음 / 영향: 애플리케이션 코드 수정 및 재배포 필요 / 검증: 종속성 라이브러리 버전 확인)
※ 본 리포트는 다중 소스 데이터의 일관성이 확인된 [교차검증] 결과와 실측 EPSS(0.00413) 수치를 바탕으로 작성되었습니다. EPSS 수치가 낮고 exploit=hard 등급인 점을 고려하여, 즉각적인 대규모 악용 가능성은 낮으나 CVSS 9.0의 치명도를 반영해 이번 주 내 대응하는 scheduled 우선순위로 결정되었습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.0 · non-KEV · EPSS=0.00413 · exploit=hard · in_scope=None