---
id: CVE-2026-85689
title: >-
  llmware 0.4.6 contains an SQL injection vulnerability in the
  collection-database layer (llmware/resources.py) where filter and lookup
  values are directly string-interpolated into SQL WHERE clauses without
  parameterization or escaping, in…
summary: >-
  llmware 0.4.6 contains an SQL injection vulnerability in the
  collection-database layer (llmware/resources.py) where filter and lookup
  values are directly string-interpolated into SQL WHERE clauses without
  parameterization or escaping, in…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-89
vendor: llmware-ai
product: llmware
affected:
  - llmware <= 0.4.6
published: '2026-09-04'
updated: '2026-09-23'
sourceUpdated: '2026-09-23T17:17:46.660'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-85689'
references:
  - url: 'https://github.com/llmware-ai/llmware'
    label: disclosure@vulncheck.com
  - url: 'https://github.com/llmware-ai/llmware/blob/v0.4.6/llmware/resources.py'
    label: disclosure@vulncheck.com
  - url: 'https://github.com/llmware-ai/llmware/issues/1304'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/llmware-0.4.6-sql-injection-via-unescaped-filter-values
    label: disclosure@vulncheck.com
tags:
  - nvd
  - cve.org
epss: 0.0042
epssPercentile: 0.33569
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-08T17:10:16.228234Z'
ingestedAt: '2026-09-08T19:08:49.592Z'
---

## Overview

llmware 0.4.6 contains an SQL injection vulnerability in the collection-database layer (llmware/resources.py) where filter and lookup values are directly string-interpolated into SQL WHERE clauses without parameterization or escaping, in both the SQLite and PostgreSQL backends. The filter validator only checks keys against an allow-list and never sanitizes values. Attacker-controlled filter values reaching the public API via Library.block_lookup and Query.text_query_with_custom_filter / text_query_by_author_or_speaker can neutralize the intended filter to disclose rows the caller was scoped out of (cross-document/cross-collection disclosure); on PostgreSQL the flaw permits boolean- and UNION-based SQL injection.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
