무슨 일이 있었나
Spring AI 1.0.0 이상의 spring-ai-elasticsearch-store, spring-ai-opensearch-store 및 spring-ai-gemfire-store 컴포넌트는 메타데이터 필터 표현식의 특수 문자를 제대로 이스케이프하거나 삭제하지 않은 채 기본 벡터 데이터베이스 쿼리 엔진에 전달합니다. 이로 인해 SQL 주입과 유사하지만 벡터 검색 백엔드를 대상으로 하는 임의의 쿼리 로직 주입이 가능합니다. 2026년 6월 15일 VMware/Broadcom의 Spring 보안 팀에서 CVSS 8.6 HIGH로 공개되었습니다.
왜 중요한가
벡터 저장소는 RAG 기반 LLM 애플리케이션의 권위 있는 지식 기반입니다. 벡터 저장소 레이어에 대한 주입 공격을 통해 공격자는 모든 임베드된 문서(독점 비즈니스 데이터, PII 또는 자격 증명 포함)를 유출하거나, 검색 결과를 손상시켜 LLM 응답을 조작하거나(대규모 간접 프롬프트 주입), 비용이 많이 드는 쿼리를 강제하여 서비스를 거부할 수 있습니다. Spring AI가 엔터프라이즈 RAG 시스템을 구축하는 데 있어 Java 생태계에서 지배적인 경로이기 때문에, 이는 많은 수의 프로덕션 AI 배포에 영향을 미칩니다.
공격 경로
공격자는 영향을 받는 Spring AI 벡터 저장소 컴포넌트에 전달되는 메타데이터 필터 매개변수에 특별히 만들어진 특수 문자를 제공합니다. 이러한 문자는 의도된 쿼리 컨텍스트를 벗어나고 Elasticsearch, OpenSearch 또는 GemFire VectorDB에 대한 임의의 백엔드 쿼리 실행을 강제합니다 — 데이터 유출, 테넌트 간 데이터 액세스 또는 LLM에서 사용되는 RAG 지식 기반 조작을 가능하게 합니다.
영향받는 시스템
Spring AI 1.0.0~1.0.x (spring-ai-elasticsearch-store, spring-ai-opensearch-store, spring-ai-gemfire-store)
완화 방안
영향을 받는 벡터 저장소 모듈의 메타데이터 필터 입력에서 특수 문자를 삭제하는 Spring AI 패치를 적용합니다. 공식 권고사항을 참조하세요: https://spring.io/security/cve-2026-47835