Description
Banks generates meaningful LLM prompts using a simple template language. In versions prior to 2.4.4, all four media filters (image, audio, video, document) in banks accept untrusted user input as file paths via Path(value) and pass them directly to open(file_path, "rb") without any path sanitization, canonicalization, or directory restriction. An attacker who controls template variables passed to a banks Prompt can use path traversal (../) to read arbitrary files accessible to the Python process—including .env files, SSH keys, cloud credentials, source code, /etc/passwd, and /etc/shadow—with the content returned base64-encoded in the rendered prompt output, making exfiltration trivial. This is particularly dangerous for applications that use banks to process user-provided template variables before sending prompts to an LLM. This issue has been fixed in version 2.4.4.
Published: 2026-07-30
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is a path traversal flaw that allows an attacker to supply a template variable that resolves to a file path containing traversal sequences (../). Through the money‑laden media filters in Banks, the untrusted value is passed directly to open(file_path, "rb") without any sanitization, canonicalization, or directory restriction. This flaw permits read access to any file accessible to the Python process, such as configuration files, SSH keys, cloud credentials, source code, /etc/passwd, and /etc/shadow, and the contents are returned base64‑encoded in the rendered prompt output, making exfiltration straightforward.

Affected Systems

The affected product is Banks released by Masci. All versions prior to 2.4.4 contain the vulnerability; version 2.4.4 and later contain a fix that removes the path traversal path resolution in the media filters.

Risk and Exploitability

The CVSS score of 7.5 indicates a high severity for this arbitrary read. The EPSS score is 0.00335 (<1%), indicating a very low probability of exploitation, and the vulnerability is not listed in CISA KEV. An attacker who can control template variables—such as a user of an application that feeds user data into a Banks prompt—can exploit the flaw by inserting path traversal segments to read arbitrary files. Because the read data is base64‑encoded in the output, exfiltration is trivial and requires no further action by the attacker beyond crafting the prompt. This weakness can compromise confidentiality and, depending on the file accessed, potentially affect system integrity.

Generated by OpenCVE AI on August 2, 2026 at 05:10 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Banks version 2.4.4 or later, which removes the unsafe file access in media filters.
  • If an upgrade is not immediately possible, restrict the input source of template variables to trusted content or apply a whitelist for allowed file paths before rendering prompts.
  • Sanitize and validate template variable values on the client or server side to remove or neutralize path traversal sequences such as "../" before processing them with Banks.

Generated by OpenCVE AI on August 2, 2026 at 05:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 14 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Thu, 30 Jul 2026 19:00:00 +0000

Type Values Removed Values Added
First Time appeared Masci
Masci banks
Vendors & Products Masci
Masci banks

Thu, 30 Jul 2026 17:00:00 +0000

Type Values Removed Values Added
Description Banks generates meaningful LLM prompts using a simple template language. In versions prior to 2.4.4, all four media filters (image, audio, video, document) in banks accept untrusted user input as file paths via Path(value) and pass them directly to open(file_path, "rb") without any path sanitization, canonicalization, or directory restriction. An attacker who controls template variables passed to a banks Prompt can use path traversal (../) to read arbitrary files accessible to the Python process—including .env files, SSH keys, cloud credentials, source code, /etc/passwd, and /etc/shadow—with the content returned base64-encoded in the rendered prompt output, making exfiltration trivial. This is particularly dangerous for applications that use banks to process user-provided template variables before sending prompts to an LLM. This issue has been fixed in version 2.4.4.
Title Banks: Arbitrary File Read via Path Traversal in Media Filters (image/audio/video/document)
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-30T17:38:15.444Z

Reserved: 2026-07-14T20:22:04.394Z

Link: CVE-2026-62663

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-07-30T17:16:33.900

Modified: 2026-07-30T19:26:51.190

Link: CVE-2026-62663

cve-icon Redhat

Severity : Important

Publid Date: 2026-07-30T16:16:34Z

Links: CVE-2026-62663 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-02T05:15:15Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')