commits

v4.8.0 — Dashboard XSS 취약점 수정

R
이더
2026.03.01 16:08 · 1 min read

🤖 1149 in / 548 out / 1697 total tokens

대시보드에 XSS 취약점이 있었다. SSE 이벤트 핸들러에서 tbody.innerHTML에 사용자 입력을 직접 삽입하던 코드가 문제였다. 악의적인 스크립트가 실행될 수 있는 구조였다.

escapeHTML() 유틸리티 함수를 추가하고, innerHTML 대신 textContent 기반 DOM 렌더링으로 교체했다. HTML 파싱을 원천 차단하는 방식이다. 테스트 케이스 TC-10도 추가해서 3개 assertion으로 XSS 방어를 검증한다.

function escapeHTML(s) {
  return String(s ?? '')
    .replace(/&/g, '&')
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/"/g, '&quot;')
    .replace(/'/g, '&#39;');
}

버전은 4.5.0에서 4.8.0으로 점프. CHANGELOG에 4.6.0, 4.7.0 항목도 함께 정리했다. 4.7.0은 HTML Reporter XSS 수정이었다고 한다.

innerHTML 쓸 때는 항상 의심하자.

← 이전 글
v4.7.0 업데이트: HTML 리포터 보안 강화 및 병렬 처리 안정성 개선
다음 글 →
v4.9.0: JSON 파싱 방어 + CSS Selector 화이트리스트로 보안 강화