Fastjson 1.x RCE(CVE-2026-16723) 대응 가이드: 노출 자산·우회 통제 점검 포인트
대상: Fastjson 1.x를 직접 또는 전이 의존성으로 사용하는 Java 서비스의 개발·플랫폼·보안 운영팀
핵심 판단: CVE-2026-16723은 Fastjson 1.2.68~1.2.83에 영향을 주는 RCE입니다. 영향은 모든 Fastjson 1.x 배포에 일률적으로 적용되는 것이 아니라, 공격자가 제어하는 JSON을 처리하는 Spring Boot executable fat-JAR 조건에서 확인된 사안입니다. Alibaba의 2026-07-21 권고와 NVD를 기준으로 해당 조건을 먼저 판별하십시오.
1. 무엇이 영향을 받는가
영향 판정에는 다음 세 조건을 함께 확인합니다.
- 애플리케이션 또는 전이 의존성이 com.alibaba:fastjson 1.2.68~1.2.83을 포함한다.
- 배포 형태가 Spring Boot executable fat-JAR이다.
- 외부·파트너·비신뢰 내부 경로의 공격자 제어 JSON이 Fastjson 파서에 도달한다.
NVD 설명에 따르면 이 사안은 stock default configuration에서 악용될 수 있으며 AutoType을 별도로 활성화하거나 classpath gadget을 준비할 필요가 없습니다. 따라서 “AutoType을 켜지 않았다” 또는 “내부망이다”만으로 영향 없음을 판단해서는 안 됩니다. 반대로 위 배포·입력 조건을 충족하지 않는 Fastjson 1.x 자산까지 본 CVE의 직접 영향으로 단정하지 말고, 실제 구성과 사용처를 기록해 판정합니다.
2. 24시간 내 자산 식별
소스·빌드·실행 산출물을 함께 조사합니다.
rg -n --glob 'pom.xml' --glob '*.gradle*' --glob 'gradle.lockfile' 'com\.alibaba:fastjson|fastjson' .
mvn dependency:tree -Dincludes=com.alibaba:fastjson
./gradlew dependencies --configuration runtimeClasspath | rg -i fastjson
각 자산에 서비스명, 환경, Fastjson 버전, 직접·전이 의존성, Spring Boot executable fat-JAR 여부, JSON 입력 출처, 인터넷 노출, 담당자, 완화 상태를 남깁니다. 특히 API·웹훅·파일 처리·메시지 큐 소비자·RPC·캐시 역직렬화·관리 콘솔을 우선 확인합니다.
| 우선순위 | 조건 | 조치 |
|---|---|---|
| P1 | 영향 버전 + executable fat-JAR + 비신뢰 JSON | 즉시 완화책 적용, 해당 입력 경로 격리 또는 중지 |
| P2 | 영향 버전 + executable fat-JAR이나 입력 출처 불명확 | 호출 흐름·로그를 확인하고 완화책을 선적용 |
| P3 | 조건 일부 미충족 | CVE 직접 영향 여부는 구분해 기록하되, 장기 이전 계획 수립 |
3. 즉시 완화: 둘 중 하나를 지체 없이 적용
Alibaba 권고에 따른 즉시 완화책은 다음 둘 중 하나입니다.
- JVM 시작 옵션에 -Dfastjson.parser.safeMode=true를 추가해 SafeMode를 활성화합니다.
- 의존성을 com.alibaba:fastjson:1.2.83_noneautotype로 교체합니다.
운영 반영 전에는 실제 JVM 옵션과 의존성 잠금 파일·최종 fat-JAR 내부의 라이브러리를 모두 확인합니다. 적용 뒤에는 서비스 재기동/재배포 여부, 파싱 오류 증가, 직렬화 호환성, 비정상 요청 차단 여부를 검증합니다. SafeMode 또는 noneautotype은 긴급 완화책이며, 유지보수 종료 계열을 계속 사용하는 장기 해법이 아닙니다.
4. 입력 경로 통제: 고정 DTO만으로 충분하지 않은 경우
외부 JSON을 명시적 고정 DTO로 받는 것은 도움이 되지만, DTO 내부에 Object, Map, List, Object[]처럼 동적 타입·중첩 구조를 허용하는 필드가 있으면 고정 DTO 바인딩만으로 차단되지 않습니다. 공격자 제어 데이터가 그 필드 내부로 계속 전달될 수 있기 때문입니다.
- 외부 입력에서 범용 Object/Map 필드를 제거하거나, 각 필드를 구체 타입으로 분해합니다.
- 불가피한 동적 구조는 사전 스키마 검증, 허용 필드·타입 목록, 최대 깊이·배열 길이·본문 크기 제한을 적용합니다.
- 알 수 없는 필드를 거부하고, Fastjson 파서에 넘기기 전 계약 검증을 수행합니다.
- 영향 경로는 중지·교체가 최선이며, DTO 정리만으로 SafeMode 또는 noneautotype 적용을 대체하지 않습니다.
5. 경계·네트워크·탐지 통제
WAF는 보조 수단으로 사용합니다. JSON 본문의 예상 밖 타입 메타데이터·클래스명 표기, 비정상 깊이·크기, 계약 외 필드를 탐지하고, 모니터링 후 차단을 확대합니다. API 게이트웨이에서는 콘텐츠 타입·본문 크기·요청률·호출자별 스키마를 강제합니다.
RCE 이후의 영향을 줄이기 위해 서비스 egress를 필요한 목적지·포트만 허용하고, 관리망·메타데이터 서비스·임의 인터넷 접근을 분리합니다. 서비스 계정 권한, 파일 쓰기, 프로세스 실행 권한도 최소화합니다.
다음 신호를 프록시·애플리케이션·EDR·클라우드 감사 로그에서 상관 분석합니다.
- Fastjson 파싱 예외 및 특정 API의 4xx/5xx 급증
- 계약 외 타입 메타데이터·긴 클래스명·비정상적으로 큰 JSON 요청
- Java 프로세스의 예상 밖 자식 프로세스, 임시 파일 실행, 비정상 DNS·egress
- 서비스 계정의 비밀 조회·권한 변경·토큰 사용 이상
의심 시 요청 ID·소스 IP·사용자·배포 버전·컨테이너/호스트를 보존하고, 외부 노출과 egress를 우선 제한합니다. 자격 증명 회전, 이미지·JAR 무결성, 프로세스 트리, 네트워크 연결, 큐 적재 메시지를 조사하며 단순 재시작으로 종결하지 않습니다.
6. 장기 조치와 완료 기준
장기 조치는 Fastjson2 최신판으로의 이전입니다. 호환성 테스트, API 계약·역직렬화 테스트, 롤백 절차, 소유자와 기한을 배정합니다. 완료 기준은 영향을 받는 배포물에서 SafeMode 또는 1.2.83_noneautotype가 검증되고, 비신뢰 JSON 경로가 제거·제한되며, Fastjson2 최신판 이전 계획이 승인된 상태입니다.
참고문헌
- Alibaba 공식 보안 권고: https://github.com/alibaba/fastjson2/wiki/Security-Advisory:-Remote-Code-Execution-in-fastjson-1.2.68%E2%80%931.2.83
- NVD, CVE-2026-16723: https://nvd.nist.gov/vuln/detail/CVE-2026-16723
- The Hacker News 원문: https://thehackernews.com/2026/07/fastjson-1x-rce-vulnerability-targeted.html
- Alibaba Fastjson2 프로젝트: https://github.com/alibaba/fastjson
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!