Critical Vulnerability in Next.js Framework Exposes Websites to Cache Poisoning and XSS Attacks
Critical Vulnerability in Next.js Framework Exposes Websites to Cache Poisoning and XSS Attacks
A new report has put the spotlight on potential security vulnerabilities within the popular open-source framework Next.js.
gbhackers.com
- 취약점 개요
- Next.js 프레임워크에서 잘못된 캐싱 설정으로 인해 캐시 오염(Cache Poisoning) 및 저장형 XSS(Stored XSS) 공격 가능성 발견
- 서버 측 캐시 오염(Server-Side Cache Poisoning)을 통해 악성 응답을 캐시에 주입하여 모든 사용자에게 전파 가능
- 취약점은 CVE-2024-46982로 등록되었으며, Next.js 13.5.1 ~ 14.2.9 버전에서 발생
- 취약점 상세 내용
- SSR(Server-Side Rendering)과 SSG(Static Site Generation) 간 캐싱 오류
- Next.js는
getStaticProps(SSG)
와getServerSideProps(SSR)
을 통해 정적 및 동적 데이터를 처리 - 공격자는 특정 헤더(예:
x-now-route-matches
) 또는 내부 URL 매개변수(__nextDataReq
)를 조작하여 SSR 요청을 SSG로 오분류(misclassification) 가능 - 이로 인해 동적 데이터가 캐시에 저장되어 악의적인 응답을 삽입하는 캐시 오염 공격이 발생
- Next.js는
- 캐시 오염을 통한 서비스 거부(DoS) 공격
- 캐시 키 설정이 올바르게 적용되지 않으면, 공격자가 JSON 데이터를 HTML 대신 제공하도록 유도하여 서비스 거부(DoS) 상태 초래
- 예를 들어,
https://example.com/
과https://example.com/?__nextDataReq=1
이 동일한 캐시 응답을 제공하면 조작된 응답이 모든 사용자에게 적용
- 저장형 XSS(Stored XSS) 공격
- 캐시된 응답에 사용자 입력 값(예:
User-Agent
문자열 등)이 반영되면, 이를 활용하여 악성 스크립트를 저장형 XSS로 삽입 가능 - 공격자는
<img src=x onerror=alert('exploit')>
같은 악성 페이로드를 캐시에 주입하여 모든 사용자의 브라우저에서 실행 - 전자상거래 사이트, 암호화폐 거래소 등 민감한 서비스에 치명적 영향
- 캐시된 응답에 사용자 입력 값(예:
- SSR(Server-Side Rendering)과 SSG(Static Site Generation) 간 캐싱 오류
- 보안 권고
- 영향 받는 버전: Next.js 13.5.1 ~ 14.2.9
- 영향 받지 않는 버전
- Next.js 14.3.0 이상
- Vercel에서 호스팅된 배포 환경
- Next.js의 새로운 앱 라우터(App Router) 아키텍처 적용 환경
- 보안 패치 적용 필수
- Next.js 최신 버전(14.3.0 이상)으로 즉시 업데이트
- 캐시 설정 점검 및
stale-while-revalidate
와 같은 디렉티브 사용 시 주의 - 캐시 키에 URL 매개변수 및 헤더 포함 여부 확인
- 결론
- Next.js는 주간 다운로드 600만 회 이상으로 광범위하게 사용되는 JavaScript 프레임워크로, 이번 취약점의 영향이 클 가능성 높음
- 정적 및 동적 콘텐츠의 캐싱이 보안 취약점을 유발할 수 있음을 입증한 사례로, 웹 개발 시 캐시 설정에 대한 면밀한 검토 필수
- Bug Bounty 프로그램을 통한 취약점 발견의 중요성 확인
- Next.js 사용자는 즉시 패치를 적용하고, 캐시 설정을 강화하여 보안성을 높일 것
'Kant's IT > Vulnerability' 카테고리의 다른 글
주니퍼 라우터 대상 'Magic Packet' 취약점 악용 백도어 발견 (0) | 2025.01.31 |
---|---|
Palo Alto 방화벽에서 Secure Boot 우회 및 펌웨어 취약점 발견 (0) | 2025.01.31 |
SonicWall, CVE-2025-23006 취약점 패치 권고 (CVSS 9.8) (0) | 2025.01.31 |
Cisco, 치명적 권한 상승 취약점 패치 (CVSS 9.9) (0) | 2025.01.31 |
NTLMv1 사용 취약점: Active Directory 그룹 정책 우회 가능성 (0) | 2025.01.26 |