Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-57298 — CVE-2025-57298 공개. | Kitploit
도구/GitHubGitHub/minnggyuu/cve-2025-57298
Vulnerability AnalysisWeb Application ExploitationWeb SecurityPapers & ResearchLearning & Education
GitHubminnggyuu/cve-2025-57298

CVE-2025-57298

CVE-2025-57298 공개.

저장소 보기
17개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Kotaemon의 안전하지 않은 Markdown 렌더링을 통한 저장형 XSS

요약

Kotaemon은 PDF, Word, Excel 파일과 같은 업로드된 문서를 질의할 수 있는 웹 인터페이스를 제공하는 오픈소스 RAG(Retrieval-Augmented Generation) 기반 문서 QA 시스템입니다.

Kotaemon의 문서 렌더링 파이프라인에는 저장형 교차 사이트 스크립팅(XSS) 취약점이 존재합니다. 사용자 제어 콘텐츠는 LLM에 의해 처리되고, 적절한 살균 없이 markdown-to-HTML 변환 후 웹 인터페이스에서 렌더링되므로, 공격자가 제공한 HTML 요소가 페이지에 지속적으로 주입될 수 있습니다.

문서가 업로드되면 시스템은 정상적인 처리 흐름의 일부로 요약 요청(예: "summary this file")을 자동으로 트리거합니다. 결과적으로 업로드된 모든 문서는 암시적으로 markdown 파싱 및 렌더링 파이프라인을 통과하므로, 명시적인 사용자 상호작용 없이도 문서 업로드만으로 취약점을 악용할 수 있습니다.


영향을 받는 버전

다음 Kotaemon 버전이 취약한 것으로 확인되었습니다:

  • 버전 <= 0.11.0

영향을 받는 구성 요소

  • 문서 렌더링 / 요약 기능
  • Markdown-to-HTML 변환 로직

영향을 받는 코드

kotaemon/blob/main/libs/ktem/ktem/utils/render.py

root@kitploit:~
@staticmethod
def table(text: str) -> str:
    """Render table from markdown format into HTML"""
    text = replace_mardown_header(text)
    return markdown.markdown(
        text,
        extensions=[
            "markdown.extensions.tables",
            "markdown.extensions.fenced_code",
        ],
    )

근본 원인

도구 다운로드

애플리케이션은 LLM이 생성한 markdown 콘텐츠를 HTML로 변환하기 위해 markdown.markdown() 함수에 의존합니다. 그러나 변환된 HTML 출력은 HTML 살균 또는 출력 이스케이프 없이 브라우저에서 직접 렌더링됩니다.

그 결과, 원시 HTML 요소를 생성하는 markdown 구문—특히 이미지 구문 ![]()—은 `` 태그와 같은 실행 가능한 HTML로 변환되어 대화 출력에 저장됩니다.


개념 증명(PoC)

페이로드

"summary" means "![](https://example.com)"

악용 단계

  1. 위 페이로드가 포함된 문서를 업로드합니다.
  2. Search All 옵션을 선택합니다.
  3. 시스템은 업로드된 문서에 대해 자동으로 요약 요청을 발행합니다.
  4. LLM이 생성한 응답에 악성 markdown이 포함됩니다.
  5. 해당 markdown은 HTML `` 태그로 변환되고 필터링 없이 렌더링됩니다.

관찰된 동작

  • 주입된 markdown 이미지 구문은 HTML `` 태그로 변환됩니다.
  • 렌더링 시 브라우저는 공격자가 제어하는 URL로 자동으로 요청을 발행합니다.
  • 주입된 HTML은 대화 출력에 지속됩니다.

영향

지속적인 HTML 요소를 주입할 수 있는 능력으로 공격자는 다음을 수행할 수 있습니다:

  • 승인되지 않은 GET 요청 트리거(예: /logout)
  • CSRF 유사 효과 유발
  • 렌더링된 UI 콘텐츠 조작

악용에는 문서 업로드만 필요하며 요약 중 자동으로 발생하므로 추가 사용자 상호작용이 필요하지 않습니다.

살균되지 않은 HTML 렌더링은 프런트엔드 렌더링 컨텍스트에 따라 이벤트 핸들러를 통한 JavaScript 실행을 허용할 수 있습니다.


증거

image-1

image-2

image-3


취약점 분류

  • 유형: 저장형 교차 사이트 스크립팅(XSS)
  • 벡터: 안전하지 않은 markdown-to-HTML 렌더링
  • 지속성: 예
  • 사용자 상호작용 필요: 아니요

권장 수정 사항

  1. markdown-to-HTML 변환 후 HTML 출력을 살균합니다.
  2. GET 요청을 통한 상태 변경 동작을 피합니다.
  3. RAG 입력 및 LLM 출력을 신뢰할 수 없는 데이터로 취급합니다.

크레딧

이 보고서는 minnggyuu가 작성했습니다. (Team 404 Not Found, WhiteHat School 3rd Cohort, 대한민국)


연락처

이메일: [email protected]
GitHub: https://github.com/minnggyuu