Skip to main content

Banks

3 CVEs product

Monthly

CVE-2026-61536 Jul 30, 16:50 HIGH PATCH This Week

Arbitrary code execution in the Banks Python LLM-templating library (versions prior to 2.4.3) allows an attacker who can influence Tool JSON definitions within a {% completion %} block to run any importable Python callable in the host process. Banks resolves the attacker-controlled import_path field via importlib.import_module() plus getattr() with no allowlist, so values like os.system or subprocess.getoutput become invokable when the LLM emits a matching tool_calls entry, passing decoded arguments as kwargs. No public exploit identified at time of analysis; this bug is explicitly distinct from and unfixed by the 2.4.2 SandboxedEnvironment patch (GHSA-gphh-9q3h-jgpp / CVE-2026-44209) because the malicious payload is plain text in the rendered body and never touches Jinja attribute access.

RCE Python Code Injection Red Hat Banks +1
NVD GitHub
CVSS 3.1
7.5
EPSS
0.3%
CVE-2026-62663 Jul 30, 16:16 HIGH PATCH This Week

Arbitrary file disclosure in the Banks Python prompt-templating library (masci/banks) before 2.4.4 lets attackers who control template variables read any file the Python process can access. All four media filters (image, audio, video, document) wrap untrusted input in Path(value) and feed it straight to open(file_path, "rb") with no sanitization, so path traversal (../) reads files like .env, SSH keys, cloud credentials, source, /etc/passwd and /etc/shadow, returning them base64-encoded in the rendered prompt for trivial exfiltration. No public exploit identified at time of analysis and it is not in CISA KEV, but the fix in 2.4.4 is straightforward to reverse-engineer.

Python Path Traversal Red Hat Banks Masci
NVD GitHub
CVSS 3.1
7.5
EPSS
0.3%
CVE-2026-71492 Aug 20, 16:13 PyPI MEDIUM POC PATCH GHSA This Month

Path traversal in the Banks Python prompt-template library (all versions prior to 2.4.5) allows a low-privileged attacker to write arbitrary bytes to attacker-chosen filesystem paths accessible to the application process. DirectoryPromptRegistry.set() in directory.py constructs on-disk paths by directly interpolating unvalidated Prompt.name and Prompt.version values - enabling relative sequences like ../victim/foo or absolute paths to escape the configured registry root. The poisoned path persists in index.json and is reconstructed on subsequent registry loads, meaning exploitation survives application restarts. No public exploit or CISA KEV listing exists at time of analysis; a vendor-released patch is available as version 2.4.5.

Path Traversal Red Hat Banks Masci
NVD GitHub
CVSS 4.0
6.0
EPSS
0.3%
EPSS 0% CVSS 7.5
HIGH PATCH This Week

Arbitrary code execution in the Banks Python LLM-templating library (versions prior to 2.4.3) allows an attacker who can influence Tool JSON definitions within a {% completion %} block to run any importable Python callable in the host process. Banks resolves the attacker-controlled import_path field via importlib.import_module() plus getattr() with no allowlist, so values like os.system or subprocess.getoutput become invokable when the LLM emits a matching tool_calls entry, passing decoded arguments as kwargs. No public exploit identified at time of analysis; this bug is explicitly distinct from and unfixed by the 2.4.2 SandboxedEnvironment patch (GHSA-gphh-9q3h-jgpp / CVE-2026-44209) because the malicious payload is plain text in the rendered body and never touches Jinja attribute access.

RCE Python Code Injection +3
NVD GitHub
EPSS 0% CVSS 7.5
HIGH PATCH This Week

Arbitrary file disclosure in the Banks Python prompt-templating library (masci/banks) before 2.4.4 lets attackers who control template variables read any file the Python process can access. All four media filters (image, audio, video, document) wrap untrusted input in Path(value) and feed it straight to open(file_path, "rb") with no sanitization, so path traversal (../) reads files like .env, SSH keys, cloud credentials, source, /etc/passwd and /etc/shadow, returning them base64-encoded in the rendered prompt for trivial exfiltration. No public exploit identified at time of analysis and it is not in CISA KEV, but the fix in 2.4.4 is straightforward to reverse-engineer.

Python Path Traversal Red Hat +2
NVD GitHub
EPSS 0% CVSS 6.0
MEDIUM POC PATCH This Month

Path traversal in the Banks Python prompt-template library (all versions prior to 2.4.5) allows a low-privileged attacker to write arbitrary bytes to attacker-chosen filesystem paths accessible to the application process. DirectoryPromptRegistry.set() in directory.py constructs on-disk paths by directly interpolating unvalidated Prompt.name and Prompt.version values - enabling relative sequences like ../victim/foo or absolute paths to escape the configured registry root. The poisoned path persists in index.json and is reconstructed on subsequent registry loads, meaning exploitation survives application restarts. No public exploit or CISA KEV listing exists at time of analysis; a vendor-released patch is available as version 2.4.5.

Path Traversal Red Hat Banks +1
NVD GitHub

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy