
Next.js의 심각한 취약점: 미들웨어 인증 우회
이 저장소는 오직 교육 목적으로만 제공됩니다. 저는 이 취약점을 발견한 것이 아닙니다. 이는 공개적으로 알려진 보안 문제에 대한 데모 및 설명입니다. 이 지식을 사용하여 승인 없이 취약한 시스템을 공격하는 것은 불법이며 비윤리적입니다.
프로덕션 앱에 Next.js를 사용하고 있다면, 지금 하던 일을 멈추고 버전 번호를 확인하세요. 심각한 미들웨어 취약점으로 인해 전체 인증 시스템이 무방비 상태가 될 수 있습니다.
이 중요한 취약점은 책임 있게 공개되었고 패치되었습니다. 따라서 저는 개발자들이 문제를 이해하고 시스템을 보호할 수 있도록 이 교육용 데모를 공유합니다.
문제는 Next.js가 내부 x-middleware-subrequest HTTP 헤더를 처리하는 방식에 있습니다. 이 헤더는 미들웨어 재귀를 방지하기 위해 설계되었지만, 공격자는 이를 조작하여 미들웨어 실행을 완전히 우회할 수 있습니다.
이것이 의미하는 바를 생각해보세요. 미들웨어 기반의 모든 보안이 잠재적으로 무력화됩니다:
이 취약점이 실제 환경에서 관리자 패널, 사용자 데이터, 심지어 금융 정보에 접근하는 데 사용되었다는 보고가 있습니다. 일부 조직은 자신도 모르게 민감한 데이터가 노출되었습니다.
이 저장소는 다음을 포함합니다:
# 문제가 있는 헤더를 제거합니다
proxy_set_header x-middleware-subrequest "";
# Apache 사용자를 위해 동일한 작업을 수행합니다
RequestHeader unset x-middleware-subrequest
// 제대로 업데이트할 때까지의 빠른 미들웨어 수정
app.use((req, res, next) => {
delete req.headers['x-middleware-subrequest'];
next();
});
이 취약점은 중요한 보안 원칙을 강조합니다:
더 안전한 Next.js 앱을 구축하기 위해 다음 자료를 확인하세요:
이 저장소는 교육 목적으로 CVE-2025-29927에 대한 기술적 설명과 데모를 제공합니다. 모든 정보는 적절히 패치된 공개 세부 사항을 기반으로 합니다. 소프트웨어에서 보안 취약점을 발견하면 항상 책임 있는 공개 절차를 따르세요:
이 취약점은 잘 설계된 프레임워크조차도 심각한 보안 결함을 가질 수 있음을 보여줍니다. 항상 경계를 늦추지 말고, 의존성 업데이트를 정기적인 작업 흐름의 일부로 삼으세요.
질문이 있거나 이러한 수정 사항을 구현하는 데 도움이 필요하면 언제든지 연락주세요!