CVE-2026-107717
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
Banks generuje znaczące prompty LLM przy użyciu prostego języka szablonów. Przed wersją 2.5.0, Banks Prompt.chat_messages() próbuje sparsować każdą linię wyrenderowanego wyniku szablonu jako JSON ChatMessage. Gdy aplikacja renderuje niezaufane dane i przekazuje zwrócone obiekty ChatMessage do dostawcy LLM, JSON kontrolowany przez atakującego może przekroczyć granicę promptu i stać się wiadomością systemową, asystenta lub narzędzia, ponieważ ChatMessage.role akceptuje dowolne ciągi. Może to nadpisać instrukcje aplikacji, zmienić zamierzoną strukturę promptu lub zdezorientować dalsze przetwarzanie narzędzi i wiadomości. Ten problem został naprawiony w wersji 2.5.0.
Ocena ryzyka
Atakujący może manipulować promptem LLM, co może prowadzić do nadpisania instrukcji, zmiany zachowania modelu lub wycieku danych.
Rekomendacja
Zaktualizuj Banks do wersji 2.5.0 lub nowszej. Dodatkowo waliduj i ograniczaj dane wejściowe renderowane do szablonów oraz sprawdzaj role wiadomości.
Inne podatności w Banks
Zobacz wszystkie- CVE-2026-107716Wysokie
Banks to biblioteka generująca prompty LLM przy użyciu prostego języka szablonów. W wersjach przed 2.5.1 DirectoryPromptRegistry nie odrzuca dowiązań symbolicznych dla pliku index.json oraz plików .jinja, co w aplikacjach z niezaufanymi użytkownikami może prowadzić do ujawnienia, odczytu lub nadpisania plików poza katalogiem rejestru.
- CVE-2026-71492Średnie
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.
- CVE-2026-61536Wysokie
Banks przed wersją 2.4.3 zawiera podatność zdalnego wykonania kodu w blokach {% completion %}. Atakujący może dostarczyć złośliwy obiekt Tool JSON z polem import_path, które jest rozwiązywane przez importlib.import_module() i getattr() bez żadnej listy dozwolonych elementów. Gdy model LLM wywoła narzędzie o pasującej nazwie, atakujący może wykonać dowolny kod Python, np. os.system lub subprocess.getoutput.
- CVE-2026-62663Wysokie
Banks, biblioteka do generowania promptów LLM, w wersjach przed 2.4.4 zawiera podatność polegającą na braku sanityzacji ścieżek plików we wszystkich czterech filtrach multimediów (obraz, audio, wideo, dokument). Atakujący kontrolujący zmienne szablonu może użyć przejścia do katalogu nadrzędnego (../) do odczytu dowolnych plików, w tym plików .env, kluczy SSH, poświadczeń chmurowych i kodu źródłowego.
- CVE-2026-44209Wysokie
Biblioteka banks przed wersją 2.4.2 używa niezabezpieczonego środowiska jinja2.Environment() do renderowania szablonów promptów, co umożliwia atak Server-Side Template Injection (SSTI) prowadzący do zdalnego wykonania kodu (RCE) na hoście.
Oryginalny opis (angielski, źródło NVD)
Banks generates meaningful LLM prompts using a simple template language. Prior to 2.5.0, Banks Prompt.chat_messages() attempts to parse every line of rendered template output as ChatMessage JSON. When an application renders untrusted data and passes the returned ChatMessage objects to an LLM provider, attacker-controlled JSON can cross the prompt boundary and become a system, assistant, or tool message because ChatMessage.role accepts arbitrary strings. This can override application instructions, alter the intended prompt structure, or confuse downstream tool and message handling. This issue is fixed in version 2.5.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

