🔍 CVE-2026-41318

5.4
CVSS Score
MEDIUM
2026-04-24
2026-10-26 22:10
✅ 완료

🇰🇷 한글 설명

AnythingLLM의 1.12.1 미만 버전에서 마크다운 렌더러의 이미지 alt 텍스트 처리 과정 중 HTML 인코딩이 누락되어 발생하는 XSS 취약점입니다. Chartable 컴포넌트가 DOMPurify를 통한 검증 없이 차트 캡션을 렌더링하기 때문에, LLM의 출력을 조작할 수 있다면 저장형 XSS 공격이 가능합니다.

💡 쉬운 설명

채팅창에 나타나는 차트 설명글에 악성 코드를 숨겨서 다른 사용자의 브라우저를 해킹할 수 있는 보안 약점입니다. 공격자가 대화 내용에 특수 문자를 섞어 넣으면 시스템이 이를 코드로 오인하여 실행하게 됩니다.

🇺🇸 원문 (English)

AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatting. Prior to version 1.12.1, AnythingLLM's in-chat markdown renderer has an unsafe custom rule for images that interpolates the markdown image's `alt` text into an HTML `alt="..."` attribute without any HTML encoding. Every call-site in the app wraps `renderMarkdown(...)` with `DOMPurify.sanitize(...)` as defense-in-depth — except the `Chartable` component, which renders chart captions with no sanitization. The chart caption is the natural-language text the LLM emits around a `create-chart` tool call, so any attacker who can influence the LLM's output — most cheaply via indirect prompt injection in a shared workspace document, or directly if they can create a chart record in a multi-user workspace — can trigger stored DOM-level XSS in every other user's browser when they open that conversation. AnythingLLM chat history is loaded server-side via `GET /api/workspace/:slug/chats` and rendered directly into the chat UI. Version 1.12.1 contains a patch for this issue.

📍 영향받는 시스템

AnythingLLM 1.12.1 미만 버전

⚔️ 공격 벡터

간접 프롬프트 인젝션 또는 공유 워크스페이스를 통한 악성 차트 캡션 삽입

🛡️ 대응 방법

AnythingLLM을 최신 버전인 1.12.1 이상으로 업데이트하십시오.

🔧 검증 코드

명령어 결과에 1.12.1 이상의 버전 번호가 출력되면 취약점이 해결된 상태입니다.

Shell / Script
curl -s http://localhost:3001/api/version | grep -E '1.12.1'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:L/A:N