피드로 돌아가기
GHSA-CCGF-5RWJ-J3HV: GHSA-ccgf-5rwj-j3hv: DOM XSS via Unsafe Deserialization in TeleJSON
Dev.toDev.to
Security

CVSS 5.1 telejson unsafe deserialization으로 DOM XSS 취약점 발견됨

GHSA-CCGF-5RWJ-J3HV: GHSA-ccgf-5rwj-j3hv: DOM XSS via Unsafe Deserialization in TeleJSON

CVE Reports2026년 4월 3일1intermediate

Context

telejson 6.0.0 이전 버전에서 constructor-name JSON 속성이 new Function()에 직접 전달되는 unsafe deserialization 문제가 존재함. 공격자는 window.postMessage 등을 통해 specially crafted JSON payload를 주입하여 임의 JavaScript 실행이 가능함.

Technical Solution

  • telejson 업그레이드: 6.0.0 이상으로 의존성 버전 갱신함
  • postMessage 검증: event.origin을 신뢰할 수 있는 도메인 화이트리스트와 엄격하게 비교함
  • CSP 배포: Content-Security-Policy 헤더에 unsafe-evalDirective 제외함
  • 코드 감사: telejson.parse() 호출부와 window.addEventListener('message') 구현부를 검토함
  • 옵션 처리: 커스텀 prototype 복원이 필요한 경우 { allowFunction: true } 옵션을 명시적으로 전달함

Impact

CVSS Score 5.1 (Medium severity)으로 Network 기반 공격 가능하며, 별도 권한 불필요함.

Key Takeaway

사용자 입력값을 Function 생성자에 전달하는 패턴은 Code Injection 위험이 내재됨. third-party JSON 라이브러리 사용 시 deserialize 로직에서 코드 실행 가능한 속성(constructor, proto, function)을 필터링해야 함.


telejson 또는 유사 JSON 역직렬화 라이브러리를 사용하는 Frontend 애플리케이션에서 6.0.0 미만 버전을 발견 시 즉시 업그레이드하고, window.postMessage 핸들러에 origin 검증 및 CSP의 unsafe-eval 제한을 적용해야 함.

원문 읽기