🇰🇷 한글 설명
Uptime Kuma의 Matomo 분석 연동 기능(server/analytics/matomo-analytics.js)이 관리자가 설정한 Matomo 값을 이스케이프 없이 <script> 블록에 삽입하여, 모든 공개 상태 페이지에서 이 값이 JavaScript로 실행됩니다. 편집자나 관리자가 악성 값을 저장하면 인증되지 않은 방문자 모두가 해당 코드를 실행하게 되어 세션 쿠키 탈취와 페이지 장악이 가능합니다.
💡 쉬운 설명
Uptime Kuma에서 관리자가 Matomo 설정값에 악성 스크립트를 넣으면, 상태 페이지를 보는 모든 사람의 브라우저에서 그 스크립트가 실행됩니다. 이를 통해 방문자의 로그인 정보가 빼돌려질 수 있습니다.
🇺🇸 원문 (English)
Uptime Kuma's Matomo analytics integration (server/analytics/matomo-analytics.js) injects the admin-configurable Matomo value as a bare, unquoted JavaScript expression inside a <script> block rendered on every public status page. A siteId value such as , once saved by an editor/admin, executes arbitrary JavaScript for every unauthenticated visitor of the public /status/<slug> page, enabling session-cookie theft and full page takeover.
📍 영향받는 시스템
Uptime Kuma (Matomo 분석 연동 기능을 사용하는 버전, 정확한 영향 버전은 공식 권고문 확인 필요)
⚔️ 공격 벡터
편집자/관리자 권한으로 Matomo 설정의 siteId 값에 악성 JavaScript를 저장하면, 공개 /status/<slug> 페이지 방문자 전원에게 스크립트가 실행됨 (저장형 XSS)
🛡️ 대응 방법
Uptime Kuma를 패치된 최신 버전으로 업데이트하고, 기존에 저장된 Matomo siteId 값을 점검하여 비정상적인 스크립트가 없는지 확인
🔧 검증 코드
출력된 버전이 공식 패치 버전 이상이면 수정된 것이며, 그보다 낮으면 취약할 수 있으므로 업데이트가 필요합니다 (컨테이너명이 다르면 명령어의 컨테이너명을 수정).
docker exec uptime-kuma cat /app/package.json 2>/dev/null | grep '"version"'