🇰🇷 한글 설명
Next.js는 풀스택 웹 애플리케이션을 구축하기 위한 React 프레임워크입니다. 10.0.0부터 15.5.16 미만, 16.2.5 미만 버전에서 기본 이미지 로더를 사용해 직접 호스팅할 경우, Image Optimization API가 로컬 이미지를 최대 크기 제한 없이 메모리에 전부 적재합니다. 공격자는 images.localPatterns 설정에 매칭되는 대용량 로컬 자산을 /_next/image 엔드포인트로 요청하여 메모리 부족(OOM) 상태를 유발할 수 있습니다. 이 취약점은 15.5.16 및 16.2.5에서 수정되었습니다.
💡 쉬운 설명
웹사이트가 이미지를 처리할 때 아주 큰 이미지 파일을 제한 없이 메모리에 올리는 문제가 있습니다. 공격자가 이런 큰 이미지를 반복 요청하면 서버 메모리가 가득 차서 사이트가 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
Next.js is a React framework for building full-stack web applications. From 10.0.0 to before 15.5.16 and 16.2.5, when self-hosting Next.js with the default image loader, the Image Optimization API fetches local images entirely into memory without enforcing a maximum size limit. An attacker could cause out-of-memory conditions by requesting large local assets from the /_next/image endpoint that match the images.localPatterns configuration (by default, all patterns are allowed). This vulnerability is fixed in 15.5.16 and 16.2.5.
📍 영향받는 시스템
Next.js 10.0.0 이상 15.5.16 미만, 16.2.5 미만을 기본 이미지 로더로 자체 호스팅하는 환경
⚔️ 공격 벡터
/_next/image 엔드포인트에 대용량 로컬 이미지 경로를 반복 요청하여 서버 메모리를 고갈시키는 방식(네트워크 접근 가능한 원격 공격)
🛡️ 대응 방법
Next.js를 15.5.16 또는 16.2.5 이상으로 업그레이드하거나, next.config.js의 images.localPatterns로 허용 경로를 제한하고 필요 시 외부 이미지 최적화 서비스를 사용합니다.
🔧 검증 코드
출력된 next 버전이 15.5.16 또는 16.2.5 이상이면 패치 완료, 그보다 낮은 버전(예: 15.5.15, 16.2.4 이하)이면 취약한 상태입니다.
npm ls next 2>/dev/null | grep -E 'next@'