🇰🇷 한글 설명
Node.js 기반 CMS인 Ghost의 Admin API 파일 업로드 엔드포인트에서 Content-Type 검증이 미흡하여 발생한 취약점입니다. S3 또는 GCS 스토리지 백엔드를 사용하는 환경에서 공격자가 원하는 Content-Type으로 파일을 서빙할 수 있으며, 이는 저장형 XSS 공격으로 이어질 수 있습니다.
💡 쉬운 설명
파일을 올릴 때 파일의 종류를 확인하는 과정이 부족하여, 악성 코드가 담긴 파일을 정상적인 파일처럼 속여 올릴 수 있는 문제입니다. 이를 통해 웹사이트 방문자나 관리자의 브라우저에서 해킹 스크립트가 실행될 위험이 있습니다.
🇺🇸 원문 (English)
Ghost is a Node.js content management system. From 6.19.4 until 6.21.1, insufficient validation of the client-supplied Content-Type on Ghost's Admin API file upload endpoint allowed uploaded files to be served from the site with an attacker-chosen content type on S3/GCS storage backends. On installations that serve uploaded files from the same origin as the site, this could have been used to facilitate stored cross-site scripting against site visitors or staff. This vulnerability is fixed in 6.21.1.
📍 영향받는 시스템
Ghost CMS 버전 6.19.4 ~ 6.21.1 (S3/GCS 스토리지 사용 시)
⚔️ 공격 벡터
Admin API를 통한 조작된 Content-Type을 포함한 파일 업로드 및 실행
🛡️ 대응 방법
Ghost CMS를 최신 보안 패치가 적용된 버전인 6.21.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Ghost의 버전이 6.21.1 미만인지 확인하여 취약 여부를 판단합니다.
npm list -g ghost --depth=0 | grep ghost