작성자: 정민욱
Next.js Server Actions 제로데이 취약점 발견
발견일: 2026-01-13
발견자: 정민욱 (검증 후에 c2z로 신고예정)
심각도: Critical
상태: PoC 완료, 추가 검증 필요
요약
Next.js 16.1.1-canary.21에서 CSRF + Predictable Action IDs 취약점을 발견했습니다.
핵심 문제:
- Server Actions의 Origin 검증 우회
- Next.js Server Actions는 POST 요청을 통해 서버 측 함수를 호출하는 메커니즘
- 정상적으로는 같은 도메인에서만 호출되어야 하지만, Origin/Referer 헤더 검증이 불완전함
- 외부 도메인에서 Origin 헤더를 포함하면 차단되지만, Origin 헤더를 아예 보내지 않으면 요청이 통과됨
- 이는 CSRF 보호 메커니즘의 근본적인 결함
- Action ID의 결정론적 생성
- Server Actions는 각 함수마다 40자 16진수 형태의 고유 ID를 가짐
- 서버 재시작, 재빌드 후에도 동일한 함수는 항상 같은 ID를 생성
- 이는 공격자가 한 번 ID를 알아내면 지속적으로 사용 가능함을 의미
영향:
- 외부에서 인증된 사용자의 Server Action 호출 가능
- 사용자 상호작용 없이 자동화된 공격 가능
- 데이터 유출, 권한 상승, 계정 탈취 가능
발견 과정
1단계: 환경 구축