Katalog CVE

CVE-2026-59319

ŚrednieCVSS 4.3
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

RedisChatMemoryRepository.findByMetadata() buduje zapytania RediSearch tag i text z wartości metadanych dostarczonych przez wywołującego bez zastosowania RediSearchUtil.escape(), w przeciwieństwie do get(), clear() i findByTimeRange() w tej samej klasie, które uciekają swoje dane wejściowe. Aplikacja, która przekazuje wartości kontrolowane przez użytkownika do findByMetadata() na polu metadanych typu tag, pozwala atakującemu wstrzyknąć składnię RediSearch (np. x} | *), która wyłamuje się z klauzuli tag i dopasowuje wszystkie zindeksowane wiadomości czatu we wszystkich konwersacjach w indeksie. Podatność dotyczy Spring AI 2.0.0.

Ocena ryzyka

Atakujący może uzyskać dostęp do wszystkich wiadomości czatu w indeksie, co prowadzi do masowego wycieku poufnych danych. Może to naruszyć prywatność użytkowników i integralność systemu.

Rekomendacja

Zaleca się aktualizację Spring AI do wersji z poprawką. Należy również unikać przekazywania wartości kontrolowanych przez użytkownika do findByMetadata() lub odpowiednio je sanityzować.

Oryginalny opis (angielski, źródło NVD)

RedisChatMemoryRepository.findByMetadata() builds RediSearch tag and text queries from caller-supplied metadata values without applying RediSearchUtil.escape(), unlike get(), clear(), and findByTimeRange() in the same class which do escape their inputs. An application that passes user-controlled values to findByMetadata() on a tag-typed metadata field allows an attacker to inject RediSearch syntax (e.g. x} | *) that breaks out of the tag clause and matches all indexed chat messages across every conversation in the index. Spring AI 2.0.0

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS