What a 95.4% Retrieval-Pivot Rate means for your stack
In February 2026 an arXiv paper titled Retrieval Pivot Attacks in Hybrid RAG reported that 334 of 350 benign queries — 95.4% — leaked cross-tenant data on a typical shared-vector-index deployment. No prompt injection, no jailbreak, no adversarial inputs. The queries were the kind of thing a real user would type. The leakage came from the embedding model being good at its job.
What the paper actually claims
The setup: a hybrid RAG pipeline (a vector database for embeddings plus a keyword retriever) serving multiple tenants from a shared index. The "leakage" is a query from tenant Y that surfaces a document owned by tenant X.
The mechanism: organic entities. Real tenants share things — vendor names, person names, compliance terms ("SOC 2", "PCI-DSS"), monetary amounts, dates, project codes. When tenant Y types a benign query about something they have in common with tenant X, the embedding model — being good at semantic similarity — surfaces tenant X's document because it legitimately matches the query embedding.
The headline number: 334 / 350 benign queries (95.4%) triggered a retrieval pivot on the studied stack. The paper also found, uncomfortably, that stronger embedding models leak more: mpnet-base-v2 (the stronger model) pivoted on more queries than MiniLM (the weaker model). Recall and cross-tenant leakage are correlated.
What this means in practice
If you run a multi-tenant RAG pipeline with a shared vector index and you have not measured your Retrieval-Pivot Rate, three things are likely true at the same time:
- Some non-trivial fraction of your benign user queries surface foreign-tenant content. The number is bounded above by the research finding (~95% in the worst case) and below by zero (a properly per-tenant-namespaced index). Where your stack lands depends on your namespace scheme, your embedding model, and whether your tenants share organic entities.
- The leakage scales with embedding-model quality. If you have recently upgraded from a smaller embedding model to a larger one (or are planning to), your leakage rate likely went up at the same time your recall improved.
- A standard LLM-as-judge red-team check will miss most of it. The leaking queries are benign; a judge looking for adversarial prompts or jailbreaks will not flag them.
How to measure it on your own stack
The Retrieval-Pivot Rate is the Class 2 metric in Sectum AI's open- source attack catalog. The measurement is reproducible: provision a handful of synthetic tenants on your stack, give each one a corpus that shares organic entities with the others, embed a unique canary marker in each tenant's documents, and issue benign queries from each tenant's session. Count the fraction of queries that surface a foreign-tenant canary.
pip install sectum-ai
# Provision 4 synthetic tenants (Acme, Globex, Initech, Hooli by
# default), plant canary markers, record the ground-truth manifest:
sectum-ai seed --workdir .sectum-ai --config sectum-ai.yaml
# Run the probe suite (Class 2 is the headline). The --output json
# flag emits a single JSON object with the RPR ready for a dashboard:
sectum-ai probe --workdir .sectum-ai --config sectum-ai.yaml --output json
# Build the tamper-evident evidence pack — the artifact your auditor
# or DPO accepts as testing coverage:
sectum-ai report --workdir .sectum-ai --config sectum-ai.yaml
A clean run on a per-tenant-namespaced index reports RPR ≈ 0. A run on a shared-index stack reports the actual rate; the research number is the upper bound, not a guarantee.
What to do if your RPR is non-zero
Three remediation paths, none of which Sectum AI implements (we verify; we don't remediate):
- Per-tenant namespaces. Most vector DBs support them natively — Pinecone namespaces, pgvector per-tenant schemas, Weaviate per-tenant collections, Chroma per-tenant collections. If your stack is on a shared index because of historical reasons, this is the first thing to fix. Sectum AI's per-tenant- namespaced adapter modes (`shared_index: false`) verify the fix worked.
- Server-side metadata filtering. If a shared index is a hard requirement, every query MUST filter by tenant ID at the database layer (not in the application layer; not in the LLM prompt). Sectum AI's Class 2 probes deliberately exercise the boundary even with metadata filters in place — the goal is to verify the filter actually engages.
- Hybrid retrieval with tenant-aware re-ranking. If you're running BM25 + vector hybrid retrieval, your re-ranker can demote cross-tenant matches before they reach the LLM. This is the "sledgehammer" fix; it works but adds latency.
The evidence shape that matters
Knowing your stack has a 23% RPR (or 0%, or 90%) is useful for your platform team. Proving it to your auditor, your DPO, or a customer's security team — with an artifact they can independently verify — is what they actually need.
Sectum AI's evidence pack is exactly that artifact: the
evidence.json + audit-pack.pdf +
attestation.intoto.json bundle, anchored with an RFC
3161 timestamp + (optional) Sigstore Rekor inclusion proof.
Anyone — your auditor, your DPO, a customer's reviewer — runs
sectum-ai verify against the pack and confirms it was
produced at a stated time over stated test conditions, without
needing to trust Sectum AI.
Start an engagement See the wedge SKU OSS on GitHub
References
- Retrieval Pivot Attacks in Hybrid RAG — arXiv, Feb 2026. The source paper.
- OWASP LLM08:2025 — Vector and Embedding Weaknesses — the OWASP category Sectum AI's Class 2 probe lives under. genai.owasp.org
- The full Sectum AI attack catalog — the 11 probe classes, of which Class 2 is the flagship.
- The Sectum AI evidence chain — how the run-digest becomes a tamper-evident artifact.
- The Sectum AI threat model — what the product covers, what's out of scope.