무슨 일이 있었나
DB-GPT 0.8.2 이하 버전은 /api/v1/chat/react-agent 엔드포인트에서 인증 없는 RCE가 발생하며, 이는 모든 호출자에게 관리자 역할을 부여하는 목 get_user_from_headers 함수에 의존합니다. 인증 없는 공격자는 ReAct 에이전트의 샌드박스되지 않은 code_interpreter 및 shell_interpreter 도구를 구동하는 프롬프트를 보내 웹서버 컨테이너에서 root로 임의 Python/bash를 실행할 수 있으며, 기본 자격 증명으로 번들된 데이터베이스에 접근할 수도 있습니다.
왜 중요한가
DB-GPT는 LLM 에이전트를 데이터베이스에 연결하는 오픈소스 에이전트 데이터 프레임워크입니다; 의도는 에이전트를 샌드박스에 유지하는 것이지만, 목 인증 객체가 이를 무력화합니다. 공격자는 컨테이너에서 사전 인증 루트를 얻고 에이전트가 서빙하려는 데이터 소스에 직접 접근하여 데이터 유출, 모델 파이프라인 조작 및 측면 이동이 가능합니다.
공격 경로
샌드박스되지 않은 code_interpreter/shell_interpreter 도구를 구동하는 /api/v1/chat/react-agent로의 인증 없는 프롬프트
영향받는 시스템
DB-GPT <= 0.8.2 (pypi dbgpt-app)
완화 방안
수정된 릴리스로 업그레이드하고 목 사용자 해석을 실제 인증/RBAC로 교체하고, 에이전트의 코드/셸 도구를 샌드박스하십시오.