Case · DiggingBeagle record

pgEdge RAG concurrent keyword searches could include another tenant's documents

pgEdge RAG Server reused a mutable BM25 keyword index across requests. Clearing, filling and searching that index under separate locks let concurrent tenant-filtered searches consult a different tenant's indexed documents. The security advisory documents the race but does not identify a particular customer document disclosed or retrospective logs proving actual cross-tenant responses.

Scope

A concurrent request pattern is needed. Vector search and database document permission checks are not necessarily affected by the same mechanism, but the keyword results can contaminate the context returned to an assistant.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
Remediation
patch available
AI role
AGAINST AI
Basis and provenance

research_demonstration setting with demonstrated status, based on the identified primary disclosure and its stated test or incident limits. The new Claim distinguishes source observations from hypothetical downstream effects. Impact band is unassigned because the scoped evidence does not justify a comparable quantitative score; no unobserved customer harm or loss is imputed. Remediation state: patch_available.

Assessed Nov 13, 2026 using diggingbeagle.assessment/1.

At a glance

Mechanism and trust boundary

  1. 01

    A concurrent request pattern is needed. Vector search and database document permission checks are not necessarily affected by the same mechanism, but the keyword results can contaminate the context returned to an assistant.

  2. 02

    The 2.0.0 fix creates a keyword index local to the request. Testing must confirm that tenant identity and authorization remain attached through every retrieval subsystem and cache.

Claims & evidence

CLM-ENR243-024-DETAILThe pgEdge RAG Server advisory attributes mixed-tenant keyword search results to a shared mutable BM25 index whose clear, populate and search stages were guarded by separate locks; the correction uses a per-request index.supported

Basis: reported finding

Link to claim
CLM-R242-PGEDGE-RAG-CROSS-TENANT-BM25-LIMITSThe security advisory documents the race but does not identify a particular customer document disclosed or retrospective logs proving actual cross-tenant responses.supported

Basis: reported finding

Link to claim
CLM-R242-PGEDGE-RAG-CROSS-TENANT-BM25-MECHANISMpgEdge RAG Server reused a mutable BM25 keyword index across requests. Clearing, filling and searching that index under separate locks let concurrent tenant-filtered searches consult a different tenant's indexed documents.supported

Basis: reported finding

Link to claim

Implications

The 2.0.0 fix creates a keyword index local to the request. Testing must confirm that tenant identity and authorization remain attached through every retrieval subsystem and cache.

Controls and mitigations

  • Upgrade, isolate per-request indexes and replay concurrent requests with unique tenant markers and strict result audits.

Unknowns and contradictions

  • The security advisory documents the race but does not identify a particular customer document disclosed or retrospective logs proving actual cross-tenant responses.

Sources and citation

Material revision history

  1. Nov 13, 2026 · Published version · first publication · revision 244