[CVE-2024-54160]-Opensearch-HTML-삽입 + 저장형 XSS
Opensearch의 'reports' 플러그인이 버전 2.18.0에서 HTML-삽입에 취약한 것으로 발견되었습니다. 보고서 기능을 사용하면 사용자가 새 보고서 정의를 생성하는 동안 헤더와 푸터에 HTML을 저장할 수 있었습니다. 아래는 헤더 기능에 iframe을 저장하여 로컬 머신에서 JavaScript 키로거를 가져와 사용자가 입력한 키를 기록하는 빠른 개념 증명(PoC)입니다.
PoC
- keylogger.html 파일을 편집하고 python3 http.server가 실행 중인 로컬 IP를 추가하십시오.
- keylogger.html을 저장하십시오.
- keylogger.html 파일과 동일한 경로에서 "python3 -m http.server"로 python3 서버를 시작하십시오.
- Reports로 이동하십시오.
- 필수 필드를 입력하십시오.
- PDF를 선택하십시오.
- 헤더 또는 푸터를 활성화하십시오.
- iframe 페이로드를 입력하십시오 ->
:8000/keylogger.html">
- 'Preview'를 클릭하십시오 - 키로거가 python 서버에서 로드되어야 합니다.
- 키보드에서 무언가를 입력하고 python 서버의 응답을 확인하십시오.
PoC 실행 스크린샷
- iframe으로 포함된 콘텐츠가 왼쪽에 렌더링됩니다 (간단하고 보기 흉하지만 PoC로는 작동합니다 :) ).
- 기록된 키 입력이 오른쪽에 표시됩니다. (키로거 PoC는 일부 키 입력을 놓쳐 최적이 아니었습니다!)

수정 조치
Opensearch 버전 2.19에서 수정되었으며, 푸터/헤더 기능에 전달된 데이터가 DOMpurify로 정화됩니다.
릴리스 노트
https://github.com/opensearch-project/opensearch-build/blob/main/release-notes/opensearch-release-notes-2.19.0.md
Opensearch의 PR
https://github.com/opensearch-project/dashboards-reporting/pull/476
저장형 XSS
버전 2.17.9에서도 동일한 기능(푸터/헤더)에 저장형 크로스 사이트 스크립팅 취약점이 발견되었습니다.
이 문제는 버전 2.19.0에서도 수정되었습니다.
CVE
https://www.cve.org/CVERecord?id=CVE-2024-54160