🇰🇷 한글 설명
Highcharts JS 1.0.0부터 4.2.2 이전 버전의 대시보드 편집 모드에서 editableOptions의 propertyPath 처리 시 __proto__나 constructor 같은 프로토타입 관련 키를 걸러내지 않습니다. 공격자가 이를 조작하면 사용자의 편집 작업으로 Object.prototype에 값이 기록될 수 있으며, 이 경우 페이지 전체의 JavaScript에 영향을 줄 수 있습니다. 4.2.2 버전에서 수정되었습니다.
💡 쉬운 설명
차트 라이브러리의 편집 기능에서 특정 설정 경로를 제대로 검사하지 않아, 공격자가 웹페이지 전체의 기본 동작을 바꿀 수 있는 문제입니다. 최신 버전으로 업데이트하면 해결됩니다.
🇺🇸 원문 (English)
Highcharts JS is a JavaScript charting library based on SVG. From 1.0.0 until 4.2.2, Highcharts Dashboards edit mode walks editableOptions propertyPath segments without rejecting prototype-related keys. An attacker who controls editableOptions can provide a path through __proto__ or constructor, and a user's edit writes the configured value onto Object.prototype. The property then becomes visible to JavaScript throughout the page, with consequences determined by the consuming application. This issue is fixed in 4.2.2.
📍 영향받는 시스템
Highcharts JS 1.0.0 ~ 4.2.2 미만 버전을 사용하는 Highcharts Dashboards 편집 모드
⚔️ 공격 벡터
editableOptions에 __proto__ 또는 constructor 경로를 포함시켜 사용자의 편집 시 Object.prototype을 오염시킴
🛡️ 대응 방법
Highcharts Dashboards를 4.2.2 이상으로 업데이트
🔧 검증 코드
출력된 버전이 4.2.2 미만이면 취약하므로 4.2.2 이상으로 업데이트가 필요하고, 4.2.2 이상이면 조치가 완료된 것입니다.
npm ls highcharts 2>/dev/null | grep highcharts