무슨 일이 있었나
NVD는 2026-10-04에 SciPhi-AI R2R 최대 3.6.6의 SSRF(CWE-918)에 대해 CVE-2026-105148(7.3 v3.1, 5.5 v4.0)을 발표했습니다. Retrieval Completion API는 모델 접두사가 LiteLLM 제공자를 선택할 때마다 사용자 제어 generation_config.api_base를 LiteLLM acomplete() 호출에 전달합니다; 컨테이너는 공격자 URL에 /v1/chat/completions를 POST하고(User-Agent litellm/...), OpenAI 호환 접두사의 경우 프로세스의 OPENAI_API_KEY를 Bearer 토큰으로 추가합니다. 공개 gist는 실제 설정에서 일반 SSRF와 키 전달을 모두 입증합니다.
왜 중요한가
R2R은 운영자의 업스트림 LLM 제공자 키를 보유한 자체 호스팅 검색 증강 GenAI 미들웨어입니다. 이 결함으로 인증되지 않은 공격자가 RAG 서버를 내부 네트워크 및 클라우드 메타데이터로의 스캐닝 프록시로 전환하고, 실시간 OPENAI_API_KEY - 청구 악용, 모델 액세스 및 잠재적 데이터 노출의 핵심 자산 - 을 유출할 수 있습니다. CVE-2026-105147(하드코딩된 비밀)과 함께 R2R 제어 평면은 기본 설치에서 사실상 열려 있습니다.
공격 경로
공개 완료/에이전트 엔드포인트는 클라이언트 제어 generation_config.api_base(및 모델 접두사)를 허용합니다. LiteLLM으로 라우팅되는 모든 모델 문자열(예: custom/, together_ai/, huggingface/ 접두사)에 대해 R2R은 해당 api_base로 HTTP 요청을 발행합니다; OpenAI 호환 접두사의 경우 Authorization: Bearer <OPENAI_API_KEY> 헤더가 첨부됩니다. 인증되지 않은 호출자는 R2R 컨테이너의 네트워크 또는 클라우드 메타데이터로 SSRF하고 LLM 제공자 키를 수확할 수 있습니다. 공개 익스플로잇 gist가 존재합니다.
영향받는 시스템
SciPhi-AI R2R 최대 3.6.6 (py/shared/abstractions/llm.py; POST /v3/retrieval/completion 및 /v3/retrieval/agent)
완화 방안
공급업체 응답이나 패치가 보이지 않음. API를 보호하십시오: 인증 활성화(기본 r2r.toml은 require_authentication=false), 허용된 api_base 값 화이트리스트, 검색 완료 엔드포인트를 높은 신뢰로 취급. 공개 gist: https://gist.github.com/DReazer/6c1fd0ef98900fbbfa383faa20f731f6