Katalog CVE

CVE-2026-71492

ŚrednieCVSS 6.0
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W bibliotece Banks przed wersją 2.4.5 funkcja DirectoryPromptRegistry.set() w src/banks/registries/directory.py interpoluje kontrolowane przez atakującego wartości Prompt.name i Prompt.version do ścieżki bez kanonizacji lub walidacji zawartości. Traversal względny, taki jak ../victim/foo, oraz absolutna wartość Prompt.name mogą ominąć lub odrzucić skonfigurowany katalog główny rejestru, a overwrite=True umożliwia nadpisanie istniejących plików docelowych. Zatruta nazwa jest zapisywana w index.json i odtwarzana przez _load(), co pozwala na przetrwanie ścieżki poza katalogiem głównym przy późniejszych ładowaniach rejestru. Aplikacja przekazująca dane żądań do tych pól może zapisać bajty Prompt.raw do ścieżek wybranych przez atakującego, które są zapisywalne przez proces aplikacji. Problem został naprawiony w wersji 2.4.5.

Ocena ryzyka

Ryzyko obejmuje zapis plików poza zamierzonym katalogiem, co może prowadzić do nadpisania krytycznych plików, eskalacji uprawnień lub uruchomienia złośliwego kodu. Atak wymaga możliwości przekazania danych do pól Prompt.name i Prompt.version, co może być możliwe zdalnie.

Rekomendacja

Zaleca się natychmiastową aktualizację do wersji 2.4.5 lub nowszej. Należy również zweryfikować, czy aplikacja nie przekazuje niesprawdzonych danych do tych pól, oraz rozważyć dodatkową walidację ścieżek.

Inne podatności w Banks

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

Banks generates meaningful LLM prompts using a simple template language. Prior to version 2.4.5, DirectoryPromptRegistry.set() in src/banks/registries/directory.py interpolates attacker-controlled Prompt.name and Prompt.version values into a Path without canonicalization or containment validation. Relative traversal such as ../victim/foo and an absolute Prompt.name can escape or discard the configured registry root, while overwrite=True permits replacement of existing target files. The poisoned name is persisted in index.json and reconstructed by _load(), allowing the out-of-root path to survive later registry loads. An application that forwards request data into these fields can therefore write Prompt.raw bytes to attacker-chosen paths writable by the application process. This issue is fixed in version 2.4.5.

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