CyberRota Analysis
AI-GeneratedThe vulnerability allows attackers to exploit the DirectoryPromptRegistry.set() function in versions prior to 2.4.5, enabling them to manipulate user-controlled Prompt.name and Prompt.version values to perform directory traversal attacks. This can lead to unauthorized file writes to arbitrary paths, potentially overwriting existing files and compromising the integrity of the application. Organizations using affected versions should prioritize updating to version 2.4.5 to mitigate the risk of exploitation.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD Description
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.