2026년 9월 30일, Next.js의 보안 업데이트가 발표되었습니다. 이번 업데이트는 두 가지 주요 취약점을 해결하기 위한 것으로, 하나는 심각한 수준의 취약점이고 다른 하나는 높은 수준의 취약점입니다. 이러한 취약점은 Next.js의 이미지 최적화 및 캐시 처리와 관련이 있으며, 사용자 애플리케이션의 보안을 유지하기 위해 반드시 패치가 필요합니다.
이 업데이트는 Next.js의 Active LTS 버전인 v16.3.8과 Maintenance LTS 버전인 v15.5.27에서 제공됩니다. 개발자들은 해당 버전으로 업데이트하여 애플리케이션의 보안을 강화해야 합니다. 특히, 자가 호스팅된 Next.js 애플리케이션을 운영하는 경우, 이러한 취약점이 악용될 수 있으므로 주의가 필요합니다.
이번 보안 업데이트에서 다루어진 두 가지 주요 취약점은 다음과 같습니다.
서버 측 요청 위조(Server-Side Request Forgery): 이미지 최적화 과정에서 공격자가 제어하는 원격 URL을 통해 서버 측 요청 위조가 발생할 수 있습니다. 이는 개인 IP 범위로의 요청을 포함할 수 있으며, images.remotePatterns가 설정되지 않은 경우에만 애플리케이션이 영향을 받습니다.
캐시 오염(Cache Poisoning): 자가 호스팅된 Next.js 애플리케이션에서 정적으로 생성된(SSG) 또는 점진적으로 재생성된(ISR) 페이지의 캐시가 다른 경로의 콘텐츠로 대체될 수 있습니다. 이로 인해 잘못된 콘텐츠가 사용자에게 제공될 수 있으며, Vercel에 배포된 애플리케이션은 영향을 받지 않습니다.
이외에도 몇 가지 중간 수준의 취약점이 발견되었습니다. 예를 들어, Next.js의 App Router를 사용하는 애플리케이션에서 메타데이터 이미지 경로가 동적 매개변수를 무시하는 문제가 있으며, 이는 공격자가 특정 메타데이터 이미지 URL을 요청할 수 있게 합니다. 또한, 캐시 컴포넌트를 사용할 경우, 루트 매개변수 값에 따라 잘못된 콘텐츠가 제공될 수 있는 위험이 있습니다.
Next.js 팀은 Vercel의 오픈 소스 버그 바운티 프로그램을 통해 보안을 강화하고 있으며, 개발자들은 이 프로그램에 참여하여 보안 개선에 기여할 수 있습니다. 보안 프로그램이나 취약점 관리에 대한 질문은 지정된 이메일로 문의할 수 있습니다.
이번 보안 업데이트는 Next.js 사용자에게 필수적이며, 애플리케이션의 보안을 유지하기 위해 즉각적인 패치가 요구됩니다.