🇰🇷 한글 설명
Perspective 5.0.0의 내장 Debug 플러그인에는 크로스사이트 스크립팅(XSS) 취약점이 존재합니다. 공격자는 이스케이프되지 않은 HTML 마크업이 포함된 테이블 셀 값을 작성해 CSV 직렬화 렌더링 과정에서 innerHTML로 삽입되도록 하여, 임의의 HTML과 JavaScript를 주입할 수 있습니다. 이로 인해 악성 스크립트가 임베딩된 페이지의 출처(origin)에서 실행될 수 있습니다.
💡 쉬운 설명
Perspective 도구의 디버그 기능에 입력값을 검사하지 않는 결함이 있습니다. 공격자가 특수하게 만든 표 데이터를 보내면, 사용자 브라우저에서 악성 스크립트가 실행될 수 있습니다.
🇺🇸 원문 (English)
Perspective 5.0.0 contains a cross-site scripting vulnerability in the built-in Debug plugin that allows attackers to inject arbitrary HTML and JavaScript by writing table cell values containing unescaped HTML markup, which are interpolated directly into innerHTML during CSV serialization rendering. Attackers can craft table rows with payloads such as unquoted attribute injections containing event handler attributes that bypass RFC 4180 quoting, since angle brackets and event handler attributes are never escaped before assignment, causing malicious scripts to execute in the embedding page's origin.
📍 영향받는 시스템
Perspective 5.0.0 (내장 Debug 플러그인 사용 환경)
⚔️ 공격 벡터
조작된 테이블 셀 값에 이벤트 핸들러 속성 등 HTML/JavaScript를 포함시켜 CSV 렌더링 시 스크립트를 실행시킴
🛡️ 대응 방법
Perspective를 패치된 최신 버전으로 업그레이드하거나, Debug 플러그인을 비활성화하고 사용자 입력을 출력 전에 HTML 이스케이프 처리합니다.
🔧 검증 코드
출력된 버전이 5.0.0이면 취약하므로 업그레이드가 필요하며, 명령어 결과가 비어 있으면 해당 패키지가 설치되지 않은 것입니다.
npm ls perspective-viewer 2>/dev/null | grep -E 'perspective'