7.5 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): High (H)
- Privileges Required (PR): Low (L)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): High (H)
- Integrity (I): High (H)
- Availability (A): High (H)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): High (H)
- Modified Privileges Required (MPR): Low (L)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): High (H)
- Modified Availability (MA): High (H)
by @LeSuisse Activity log
- Created suggestion
-
@LeSuisse
ignored
5 packages
- bankstown-lv2
- nltk-data.universal-treebanks-v20
- python313Packages.asteroid-filterbanks
- python314Packages.asteroid-filterbanks
- pkgsRocm.python3Packages.asteroid-filterbanks
- @LeSuisse accepted
- @LeSuisse published on GitHub
Banks: Unsafe importlib.import_module of attacker-controlled Tool.import_path in CompletionExtension allows RCE
Banks generates meaningful LLM prompts using a simple template language. In versions prior to 2.4.3, banks parses Tool JSON objects from the rendered body of {% completion %} blocks and later resolves their import_path field through importlib.import_module(...) + getattr(...) to obtain the callable that handles a tool call. There is no allowlist or sanitization on import_path, so any importable Python attribute (e.g. os.system, subprocess.getoutput) can be selected. When the LLM emits a tool_calls entry whose function.name matches the attacker-supplied tool name, the resolved callable is invoked with kwargs decoded from tool_call.function.arguments, yielding arbitrary code execution in the banks-hosting process. This is distinct from GHSA-gphh-9q3h-jgpp / CVE-2026-44209. That advisory was fixed in 2.4.2 by switching src/banks/env.py from Environment to SandboxedEnvironment. The fix does not touch src/banks/extensions/completion.py, and the unsafe import + getattr chain still executes on 2.4.2. The malicious Tool JSON is plain text in the rendered template body — it requires no Jinja attribute access, so the sandbox is irrelevant. This issue has been fixed in version 2.4.3.
References
-
https://github.com/masci/banks/security/advisories/GHSA-64vx-6h2c-rjh7 x_refsource_CONFIRM
Affected products
- ==< 2.4.3
Matching in nixpkgs
pkgs.python313Packages.banks
Module that provides tools and functions to build prompts text and chat messages from generic blueprints
Ignored packages (5)
pkgs.bankstown-lv2
Lightweight psychoacoustic bass enhancement plugin
pkgs.nltk-data.universal-treebanks-v20
NLTK Data
-
nixos-unstable 0-unstable-2024-07-29
- nixpkgs-unstable 0-unstable-2024-07-29
- nixos-unstable-small 0-unstable-2026-07-01
-
nixos-26.05 0-unstable-2024-07-29
- nixos-26.05-small 0-unstable-2024-07-29
- nixpkgs-26.05-darwin 0-unstable-2024-07-29
pkgs.python313Packages.asteroid-filterbanks
PyTorch-based audio source separation toolkit for researchers
-
nixos-unstable 0.4.0-unstable-2024-12-02
- nixpkgs-unstable 0.4.0-unstable-2024-12-02
- nixos-unstable-small 0.4.0-unstable-2024-12-02
-
nixos-26.05 0.4.0-unstable-2024-12-02
- nixos-26.05-small 0.4.0-unstable-2024-12-02
- nixpkgs-26.05-darwin 0.4.0-unstable-2024-12-02
pkgs.python314Packages.asteroid-filterbanks
PyTorch-based audio source separation toolkit for researchers
-
nixos-unstable 0.4.0-unstable-2024-12-02
- nixpkgs-unstable 0.4.0-unstable-2024-12-02
- nixos-unstable-small 0.4.0-unstable-2024-12-02
-
nixos-26.05 0.4.0-unstable-2024-12-02
- nixos-26.05-small 0.4.0-unstable-2024-12-02
- nixpkgs-26.05-darwin 0.4.0-unstable-2024-12-02
pkgs.pkgsRocm.python3Packages.asteroid-filterbanks
PyTorch-based audio source separation toolkit for researchers
-
nixos-unstable 0.4.0-unstable-2024-12-02
- nixpkgs-unstable 0.4.0-unstable-2024-12-02
- nixos-unstable-small 0.4.0-unstable-2024-12-02
-
nixos-26.05 0.4.0-unstable-2024-12-02
- nixos-26.05-small 0.4.0-unstable-2024-12-02
- nixpkgs-26.05-darwin 0.4.0-unstable-2024-12-02
Package maintainers
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>