Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-77521-lab — CVE-2026-77521(MaxKB 프롬프트 주입 가능 명령 실행)의 무해하고 자체 완결적인 재현 | Kitploit
도구/GitHubGitHub/inertfluid/cve-2026-77521-lab
Vulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationAI SecurityLabs & Practice
GitHubinertfluid/cve-2026-77521-lab

cve-2026-77521-lab

CVE-2026-77521(MaxKB 프롬프트 주입 가능 명령 실행)의 무해하고 자체 완결적인 재현

저장소 보기
22일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-77521 — MaxKB 프롬프트 주입 가능 에이전트 → 명령 실행 실습

GHSA-f36j-f34j-h3rx / CVE-2026-77521을 재현하는 자체 포함형의 무해한 실습 환경입니다: MaxKB(오픈소스 엔터프라이즈 AI 어시스턴트 / RAG 플랫폼)에서 도구, MCP 도구, 스킬 또는 하위 애플리케이션을 가진 모든 어시스턴트에는 인간 승인 게이트 뒤에 있지 않은 셸 execute 도구가 자동 주입됩니다 — 따라서 프롬프트 주입(채팅 또는 수집된 문서로부터)이 셸에 도달합니다. 샌드박스가 이를 격리할 예정이었지만, shell=True 문자열 때문에 메타문자가 샌드박스를 탈출할 수 있었습니다.

보안 공지GHSA-f36j-f34j-h3rx
CVECVE-2026-77521
프로젝트1Panel-dev/MaxKB
영향 받는 버전< 2.10.5-lts
패치 버전2.10.5-lts (커밋 594f50f) — 부분적, 아래 참조
CVSS10.0 CRITICAL (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
취약점 유형CWE-78 (OS 명령 주입) · CWE-250 (불필요한 권한) · CWE-749 (위험한 메서드 노출)

⚠️ 윤리적 사용

이 실습은 교육 및 방어 목적으로 패치되었고 공개적으로 공개된 취약점을 재현합니다. 전적으로 로컬에서 무해하게 실행됩니다:

  • 결정론적 PoC는 무해한 명령만 실행합니다(id, PoC가 삭제하는 마커 파일 작성). 실제 gosu/샌드박스/root는 관여하지 않습니다 — 권한 강등 래퍼는 무해한 env 마커로 대체되어 어디서든 데모가 실행됩니다.
  • PoC 3은 실제 모델을 호출하지만 오직 관찰만 합니다; 도구 호출을 실행하지는 않습니다. 주입된 명령은 무해합니다. 소유한 인프라에만 사용하십시오.

한 문단으로 요약한 버그

어떤 기능이든 연결된 MaxKB 어시스턴트는 SandboxShellBackend와 함께 deepagents 위에 구축됩니다. deepagents는 셸 execute 도구(및 read_file/write_file/…)를 자동 주입하며, MaxKB는 excluded_tools를 사용하지 않으므로 execute는 항상 존재합니다. 인간 승인이 필요한 항목을 결정하는 interrupt_on 설정은 {"write_file": False, "read_file": False, "edit_file": False}입니다: execute가 여기에 없으므로 승인 없이 실행됩니다. 모델을 조종할 수 있는 모든 텍스트(채팅 메시지 또는 RAG 파이프라인이 수집한 오염된 문서)는 따라서 에이전트가 셸 명령을 실행하도록 만들 수 있습니다. 소스 설치에서는 SANDBOX가 기본적으로 꺼져 있어 명령이 앱 사용자로 실행됩니다; 공식(root) 컨테이너에서는 샌드박스 래퍼가 shell=True 문자열이어서 ;/>/$()가 gosu 외부에서 root로 실행되었습니다.

이것이 증명하는 것

  1. 인간 개입 게이트 누락 (CVSS-10의 핵심). MaxKB의 실제 interrupt_on에서는 주입된 execute 호출이 승인 없이 실행됩니다; "execute": True를 추가하면 게이트가 적용됩니다. → poc/01_missing_hitl_gate.py
  2. 셸 메타문자를 통한 샌드박스 탈출. ;+리다이렉트가 단일 문자열 gosu 접두사를 탈출합니다; 2.10.5-lts의 _build_sandbox_command() 재인용이 이를 무력화합니다. → poc/02_sandbox_escape.py
  3. 실제 모델이 이를 수행합니다. 오염된 수집 문서만 주어지면 실제 모델이 공격자의 명령으로 execute를 호출합니다(깨끗한 문서에서는 호출하지 않음). → poc/03_real_llm.py

수정은 구멍의 절반에 불과합니다

배포된 2.10.5-lts 패치(커밋 594f50f)는 샌드박스 탈출만 강화합니다 — _build_sandbox_command()를 추가하는데, 이 함수는 셸 연산자를 기준으로 분할하고, 모든 토큰을 shlex.quote로 다시 인용하며, 각 단순 명령을 gosu 접두사로 감쌉니다. v2.10.5-lts 소스와 대조하여 검증한 결과, 에이전시 코어는 변경되지 않았습니다: interrupt_on은 여전히 execute를 생략하고, 백엔드는 여전히 SandboxShellBackend이며, SANDBOX는 여전히 기본값이 0입니다. 따라서 수정 이후에도 프롬프트 인젝션된 execute는 여전히 사람의 승인 없이 실행됩니다 — 내부 벽은 보강되었지만 게이트는 열린 채로 남아 있는 것입니다. PoC 1은 벤더가 배포하지 않은 권장 완화책(execute 게이팅)을 보여줍니다.

실행 방법

PoC 1/2에는 의존성이 없습니다 (Python 3.9+):

./run.sh                               # all three (PoC 3 skips without an endpoint)
python3 poc/01_missing_hitl_gate.py    # missing approval gate
python3 poc/02_sandbox_escape.py       # metacharacter sandbox escape

이것을 발표하시나요? DEMO.md는 런북이며 demo.sh는 키 입력 한 번에 하나씩 실행합니다.

선택 사항: 실제 LLM을 대상으로 한 PoC 3

모든 OpenAI 호환 엔드포인트(자체 호스팅 또는 호스팅된 오픈 모델). 예시(Groq):

export OPENAI_BASE_URL=https://api.groq.com/openai/v1
export OPENAI_API_KEY=$GROQ_API_KEY     # read from env only; never logged
MODEL="openai/gpt-oss-20b" python3 poc/03_real_llm.py

TLS 검사 프록시 뒤에서는 경고와 함께 검증 없이 재시도합니다 (INSECURE_SSL=1로 강제). 엔드포인트가 설정되지 않은 경우에는 깔끔하게 건너뜁니다.

파일

경로설명
sandbox_shell.pyMaxKB의 execute() 명령 구성에 대한 무해한 모델 — 취약한 문자열 vs 패치된 _build_sandbox_command()
agent_sim.pydeepagents interrupt_on 인간 승인 게이트의 최소 모델
payloads/poisoned-document.md공격자가 오염시킨 KB 문서 (간접 주입)
poc/01_missing_hitl_gate.py주입된 execute가 승인 없이 실행됨; 게이팅이 이를 차단
poc/02_sandbox_escape.py메타문자가 gosu 접두사를 탈출함; 2.10.5 파서는 이를 포함함
poc/03_real_llm.py실제 모델이 오염된 문서로부터 execute를 호출함 (정상 vs 오염)
DEMO.md / demo.sh발표자 런북 및 페이스 조절 데모 드라이버
assets/attack-flow.{svg,png}공격 흐름 다이어그램 (블로그 히어로)
assets/poc3-groq-sample.txt기록된 PoC 3 출력 (데모 폴백)
도구 다운로드