🇰🇷 한글 설명
AnythingLLM 1.11.1 및 이전 버전에서 발생하는 취약점으로, 커뮤니티 허브 URL로부터 ZIP 파일을 다운로드하고 압축을 해제할 때 파일 경로를 검증하지 않습니다. 이로 인해 Zip Slip 경로 탐색 공격이 가능하며, 공격자가 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
압축 파일을 풀 때 파일 이름에 특수 문자를 섞어 시스템의 중요한 폴더에 몰래 파일을 저장하는 공격입니다. 이를 통해 해커가 사용자의 컴퓨터에서 원하지 않는 프로그램을 실행할 수 있습니다.
🇺🇸 원문 (English)
AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatting. In 1.11.1 and earlier, The ImportedPlugin.importCommunityItemFromUrl() function in server/utils/agents/imported.js downloads a ZIP file from a community hub URL and extracts it using AdmZip.extractAllTo() without validating file paths within the archive. This enables a Zip Slip path traversal attack that can lead to arbitrary code execution.
📍 영향받는 시스템
AnythingLLM 1.11.1 및 그 이전 버전
⚔️ 공격 벡터
조작된 경로가 포함된 ZIP 파일을 업로드하거나 URL을 통해 다운로드하여 압축을 해제하는 방식
🛡️ 대응 방법
AnythingLLM을 최신 버전으로 업데이트하거나, 압축 해제 시 파일 경로 검증 로직이 포함된 패치를 적용해야 합니다.
🔧 검증 코드
출력된 버전 번호가 1.11.1 이하인지 확인하여 취약 여부를 판단합니다.
npm list -g anythingllm | grep -E 'anythingllm@([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2})'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:H/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server