
React와 DoS
두줄요약
React Flight Protocol의 순환 참조가 Node.js 서버를 블로킹하는 DoS 취약점을 분석했습니다. 자기 참조 감지와 참조 체인 1,000회 제한 패치 과정을 설명합니다.
문제 상황
- React Server Components와 Server Actions 도입으로 서버 보안 위협에 노출된 React 애플리케이션
- 조작된 React Flight Protocol 페이로드로 Node.js 싱글 스레드 서버를 블로킹하는 DoS 취약점
구조와 흐름
- 컴포넌트 트리, 비동기 의존성, Suspense 경계를 직렬화하는 React Flight Protocol
$,@,J,M,I등의 기호 기반 청크 참조와 서버 측 역직렬화- 특수 참조 기호의 순환 체인 해석 과정에서 발생하는 무한 루프 또는 스택 오버플로우
해결 방법
- 자기 참조 청크를 감지해
Cannot have cyclic thenables오류로 처리하는 1차 패치 - 상호 순환 참조와 과도하게 긴 체인 대응을 위한 탐색 횟수 1,000회 제한
주의할 점
- 자기 순환 차단만으로는 다중 청크 순환 참조와 자원 고갈 공격 방어 불가
- 서버·클라이언트 통합 개발 방식의 생산성 이면에 존재하는 보안 복잡성과 트레이드오프

