CVE catalog

CVE-2026-107716

Banks generates meaningful LLM prompts using a simple…

[CVE catalog]

A flaw was found in Banks. The directory prompt registry fails to properly validate symbolic links (file system shortcuts that point to another location). An attacker with the ability to influence files in the prompt directory can exploit this vulnerability by creating links that point outside the intended root directory. This flaw enables the attacker to achieve information disclosure by reading sensitive files, or cause unauthorized data modification by overwriting arbitrary external files. banks: Banks: Information disclosure via symbolic link traversal This vulnerability is evaluated with an Important severity because an attacker can achieve both high-impact data leakage and unauthorized file modification by abusing symbolic link resolution outside the intended registry directory. Within Red Hat products utilizing the Banks library, such as Lightspeed services, exploitation relies on the prerequisite that an untrusted actor has write access to populate or alter the prompt registry directory. Deployments where prompt storage is strictly managed by administrators and isolated from untrusted local inputs face minimal exposure. The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.

Severity
High · CVSS 7.3CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
Published
Updated
Source
[NVD] · [CVE record]
EPSS
0.13% · Oct 27, 2026

Reported versions and fixes

Each observation applies to its named package, distribution, and release. Distribution backports can fix a vulnerability while retaining an older upstream version number.

Distribution / releasePackageVersionStatusSource
PyPIRelease not reportedbanks0.0.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.0.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.0.2UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.0.2UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.0.3UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.0.3UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.1.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.1.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.1.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.1.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.2.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.2.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]

Showing 12 observations. All 76 observations, including unknown and conflicting reports, are available below.

Provider details and historical evidence
Distribution / releasePackageVersionStatusSource
PyPIRelease not reportedbanks0.0.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.0.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.0.2UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.0.2UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.0.3UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.0.3UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.1.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.1.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.1.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.1.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.2.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.2.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.3.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.3.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.3.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.3.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.4.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.4.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.5.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks0.5.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.6.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks0.6.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.0.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.0.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.1.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.1.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.2.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.2.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.2.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.2.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.3.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.3.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.4.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.4.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.5.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.5.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.6.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.6.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.6.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.6.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.7.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.7.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.7.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks1.7.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.8.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks1.8.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.0.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.0.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.1.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.1.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.1.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.1.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.1.2UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.1.2UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.1.3UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.1.3UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.2.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.2.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.3.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.3.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.4.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.4.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.4.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.4.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.4.2UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.4.2UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.4.3UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.4.3UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.4.4UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.4.4UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.4.5UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.4.5UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.5.0UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.5.0UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
PyPIRelease not reportedbanks2.5.1UnknownConflicting source reportsSource applicability is not established[PYSEC-2026-4201]
PyPIRelease not reportedbanks2.5.1UnknownConflicting source reports[GHSA-556J-VV39-8RQV]
Original provider fields
{
  "package_releases": [],
  "fixed_versions": [],
  "distribution_packages": [
    {
      "name": "banks",
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "2.5.1"
            }
          ]
        }
      ],
      "versions": [
        "0.0.1",
        "0.0.2",
        "0.0.3",
        "0.1.0",
        "0.1.1",
        "0.2.0",
        "0.3.0",
        "0.3.1",
        "0.4.1",
        "0.5.0",
        "0.6.0",
        "1.0.0",
        "1.1.0",
        "1.2.0",
        "1.2.1",
        "1.3.0",
        "1.4.0",
        "1.5.0",
        "1.6.0",
        "1.6.1",
        "1.7.0",
        "1.7.1",
        "1.8.0",
        "2.0.0",
        "2.1.0",
        "2.1.1",
        "2.1.2",
        "2.1.3",
        "2.2.0",
        "2.3.0",
        "2.4.0",
        "2.4.1",
        "2.4.2",
        "2.4.3",
        "2.4.4",
        "2.4.5",
        "2.5.0"
      ],
      "ecosystem": "PyPI",
      "provider_url": "https://osv.dev/vulnerability/PYSEC-2026-4201",
      "fixed_version": "2.5.1",
      "provider_source": "pypi",
      "provider_record_id": "PYSEC-2026-4201",
      "provider_updated_at": "2026-10-15T14:45:06.048658626Z",
      "applicability_unknown": true
    },
    {
      "name": "banks",
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "2.5.1"
            }
          ]
        }
      ],
      "versions": [
        "0.0.1",
        "0.0.2",
        "0.0.3",
        "0.1.0",
        "0.1.1",
        "0.2.0",
        "0.3.0",
        "0.3.1",
        "0.4.1",
        "0.5.0",
        "0.6.0",
        "1.0.0",
        "1.1.0",
        "1.2.0",
        "1.2.1",
        "1.3.0",
        "1.4.0",
        "1.5.0",
        "1.6.0",
        "1.6.1",
        "1.7.0",
        "1.7.1",
        "1.8.0",
        "2.0.0",
        "2.1.0",
        "2.1.1",
        "2.1.2",
        "2.1.3",
        "2.2.0",
        "2.3.0",
        "2.4.0",
        "2.4.1",
        "2.4.2",
        "2.4.3",
        "2.4.4",
        "2.4.5",
        "2.5.0"
      ],
      "ecosystem": "PyPI",
      "provider_url": "https://github.com/advisories/GHSA-556j-vv39-8rqv",
      "fixed_version": "2.5.1",
      "provider_source": "github",
      "provider_record_id": "GHSA-556J-VV39-8RQV",
      "provider_updated_at": "2026-10-08T22:10:07Z"
    }
  ]
}

OpenFactory catalog packages

Matching against OpenFactory catalog package versions is in progress.

Observed:

References