🇰🇷 한글 설명
OpenCATS 0.12.0 미만 버전에서 발생하는 저장형 XSS 취약점입니다. 권한이 낮은 사용자가 후보자, 회사, 연락처 등의 이름 필드에 악성 스크립트를 삽입하면, '최근 항목' 패널을 통해 관리자를 포함한 다른 사용자의 세션에서 스크립트가 실행될 수 있습니다.
💡 쉬운 설명
낮은 권한을 가진 사용자가 이름 칸에 몰래 악성 코드를 적어두면, 관리자가 그 이름을 보는 순간 관리자의 계정 권한을 탈취할 수 있는 보안 약점입니다.
🇺🇸 원문 (English)
OpenCATS before 0.12.0 contains a stored cross-site scripting vulnerability that allows a low-privileged authenticated user to inject HTML/JavaScript payloads by setting a Candidate, Company, Contact, Job Order, or List name/title field, which is stored unsanitized and later rendered unescaped in the 'Recent' (MRU) navigation panel displayed on nearly every page via lib/MRU.php's getFormatted() function. Attackers can exploit this by crafting a malicious record name that executes arbitrary JavaScript in the session of any other user, including Site Administrators, who views the record, enabling session/cookie theft and privilege escalation to full administrative control.
📍 영향받는 시스템
OpenCATS version < 0.12.0
⚔️ 공격 벡터
저권한 사용자가 특정 필드(Candidate, Company 등)에 HTML/JavaScript 페이로드를 삽입하여 저장
🛡️ 대응 방법
OpenCATS를 0.12.0 이상의 최신 버전으로 업데이트하거나 입력값 검증 및 출력 이스케이프 처리를 적용
🔧 검증 코드
해당 함수가 존재하고 입력값이 적절히 이스케이프 처리되지 않은 채 렌더링되는지 소스 코드를 통해 확인
grep -r "getFormatted()" lib/MRU.php 2>/dev/null