🇰🇷 한글 설명
EverShop 2.0.1에서 원격의 인증되지 않은 공격자가 /api/images 엔드포인트를 통해 임의의 파일과 디렉터리를 업로드할 수 있습니다. 해당 엔드포인트는 기본적으로 인증 없이 접근 가능하며, 서버 측 파일 검증이 불충분합니다. 이를 악용해 이미지가 아닌 파일을 포함한 임의 콘텐츠를 업로드하여 사용자/관리자 로그인 페이지를 위조하고 자격 증명을 탈취하거나, 디스크 공간을 소진시켜 서비스 거부 공격을 수행할 수 있습니다.
💡 쉬운 설명
누구나 로그인 없이 쇼핑몰 서버에 파일을 올릴 수 있는 취약점입니다. 공격자는 이를 이용해 가짜 로그인 화면을 올려 비밀번호를 빼내거나, 서버 저장 공간을 가득 채워 사이트를 마비시킬 수 있습니다.
🇺🇸 원문 (English)
EverShop 2.0.1 allows a remote unauthenticated attacker to upload arbitrary files and create directories via the /api/images endpoint. The endpoint is accessible without authentication by default, and server-side validation of uploaded files is insufficient. This can be abused to upload arbitrary content (including non-image files) which could impersonate user/admin login panels (exfiltrating credentials) and to perform a denial-of-service attack by exhausting disk space.
📍 영향받는 시스템
EverShop 2.0.1 (오픈소스 Node.js 기반 이커머스 플랫폼)
⚔️ 공격 벡터
인증 없이 /api/images 엔드포인트에 조작된 파일을 전송하여 임의 파일 업로드 및 디렉터리 생성
🛡️ 대응 방법
EverShop을 최신 패치 버전으로 업데이트하고, /api/images에 인증을 적용하며, 서버 측에서 파일 타입 및 내용을 엄격히 검증하고 업로드 디렉터리 실행 권한을 제거
🔧 검증 코드
출력된 버전이 2.0.1이면 취약하므로 업데이트가 필요하고, 명령어 결과가 없으면 해당 패키지가 설치되지 않은 것입니다.
npm ls @evershop/evershop 2>/dev/null | grep evershop