🇰🇷 한글 설명
JHipster의 특정 버전에서 생성된 애플리케이션은 공격자가 제어하는 Blob 데이터와 ContentType을 저장하고 REST 엔드포인트를 통해 반환할 수 있는 취약점이 있습니다. 이로 인해 권한이 있는 사용자가 악성 HTML이나 SVG 콘텐츠를 열 경우 애플리케이션의 오리진에서 코드가 실행될 수 있습니다.
💡 쉬운 설명
공격자가 웹사이트에 악성 코드가 담긴 파일을 몰래 저장해둘 수 있는 취약점입니다. 관리자가 해당 파일을 클릭하여 열게 되면 공격자의 코드가 실행되어 보안이 뚫릴 수 있습니다.
🇺🇸 원문 (English)
JHipster is a development platform to quickly generate, develop, and deploy modern web applications and microservice architectures. Prior to generator-jhipster 9.4.0 and react-jhipster 1.1.0, generated applications can persist attacker-controlled Blob data and companion ContentType values, return them through generated REST endpoints, and pass them to the generated openFile helper in generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/data-utils.ts.ejs. The helper uses the returned ContentType as the browser Blob MIME type and opens an object URL, so a normal authenticated user with write access to a Blob-bearing entity can store active HTML or SVG content that may execute under the application origin when a privileged user opens it. Exploitability depends on the generated application's content security policy and target-browser Blob behavior. This issue is fixed in generator-jhipster 9.4.0 and react-jhipster 1.1.0.
📍 영향받는 시스템
generator-jhipster 9.4.0 미만 및 react-jhipster 1.1.0 미만 버전
⚔️ 공격 벡터
Blob 엔티티에 대한 쓰기 권한을 가진 사용자가 악성 MIME 타입을 포함한 데이터를 업로드하여 실행 유도
🛡️ 대응 방법
generator-jhipster 9.4.0 또는 react-jhipster 1.1.0 이상 버전으로 업데이트
🔧 검증 코드
출력된 버전 정보가 9.4.0 또는 1.1.0보다 낮은지 확인하여 취약 여부를 판단합니다.
npm list generator-jhipster react-jhipster | grep -E 'generator-jhipster|react-jhipster'