
OpenKM 메모 섹션의 저장형 XSS 개념 증명으로, javascript:를 통한 샌드박스 규칙 우회를 보여주며, CVSS 3.1 점수와 대응 지침을 포함합니다.
메모에 저장된 XSS
애플리케이션의 메모 섹션에서 저장 XSS가 발견되었습니다. OpenKM을 사용하는 클라이언트를 펜테스트하는 중이었습니다. 기본적으로 메모를 저장할 때 일반 HTML이 허용되었고 그대로 렌더링되었습니다. 아시다시피, <script> 태그와 JavaScript on-* 이벤트는 XSS 정화 규칙의 일부로 정리/대체되었습니다.
그러나 <a> 태그에서 javascript&colon:을 사용하면 해당 정화/대체 규칙을 우회할 수 있음을 발견했습니다.
이슈를 재현하려면 메모 섹션에 다음 페이로드를 제출하세요.
<a href='javascript:alert(1)'>Click here for more info</a>
페이로드를 트리거하려면 사용자가 속아서 클릭하도록 유도되어야 합니다.
영향 측면: 낮은 권한의 사용자가 키 입력을 기록하거나 사용자를 악성 웹사이트로 리디렉션하거나 피해자 컨텍스트에서 데이터를 제출하는 악성 JavaScript 페이로드를 제출할 수 있으며, 이는 피해자가 링크를 클릭할 때 트리거됩니다.
애플리케이션에서 영향을 받는 영역: 모든 메모 섹션.
영향을 받는 버전: OpenKM Community Edition 6.3.11
CVSS 3.1: CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N (Medium 5.4)
권장 사항: 정화를 개선하십시오. 예를 들어 'javascript' 키워드를 완전히 대체하거나 'javascript:'을 대체하는 추가 규칙을 추가하십시오.
참조: 수정: https://github.com/openkm/document-management-system/pull/336 CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40317 NIST: https://nvd.nist.gov/vuln/detail/CVE-2022-40317