FixVibe

// 探测 / 聚焦

Cross-Tenant Data Leaks

Multi-tenant SaaS without tenant ID enforcement leaks customer data across orgs.

概要

Tenant isolation is one of those things that works perfectly until the moment it doesn't, and the moment it doesn't is the moment that ends up in the security write-up. The bug looks small in any single query — one missing `WHERE tenant_id = ?` clause buried in a code path that gets hit twice a week by an admin export feature — but the consequence is unbounded: every customer's data is reachable from every other customer's session. B2B SaaS lives or dies on tenant isolation; a cross-tenant leak isn't a bug report, it's a board-level incident with regulator letters and customer churn. The structural defense is well-understood; the operational discipline of getting it on every code path is what's hard.

運作方式

Tenant-isolation issues appear when a multi-tenant app checks authentication but not the tenant boundary for every object and action. The result can be cross-customer read or write access.

影響范圍

Customer data leak across orgs — emails, billing info, internal documents, integration tokens, anything the leaking tenant stored. Trust impact in B2B SaaS is severe and lasting; one cross-tenant incident is the kind of thing that makes its way into RFPs as 'have you ever experienced a cross-tenant breach.' GDPR exposure escalates dramatically (controller-level breach affecting multiple data subjects across multiple legal entities). Customer churn after disclosure is real and large.

// fixvibe 檢查的內容

FixVibe 檢查的內容

FixVibe checks this class with verified-domain active testing that is bounded, non-destructive, and evidence-driven. Public reports describe the affected surface and remediation. For check-specific questions about exact detection heuristics, active payload details, or source-code rule patterns, contact support@fixvibe.app.

铁壁防御

Enforce tenant filtering at the data-access layer, not at every controller. The right pattern: ORM scopes that automatically apply `currentTenant.id` to every query (Mongoose middleware, Sequelize defaultScope, Drizzle row-level security helpers, Prisma extensions). The strongest version: Postgres Row-Level Security policies that the database itself enforces — your application code becomes incapable of forgetting. Every query that crosses the tenant boundary intentionally (admin tools, customer-support views, internal reports) is explicit and reviewed. Bind tenant scope to the session at the auth layer, never read it from request input. Write integration tests that authenticate as tenant A, create a uniquely-marked resource, then authenticate as tenant B and assert the resource is invisible — bake this into your test fixture so every endpoint is automatically covered. Audit your codebase for `findById`, `findOne` patterns that don't include the tenant predicate; those are the bugs waiting to ship.

要点

Tenant isolation is the quintessential 'one missing line' vulnerability — and the right defense is to make that line impossible to miss. RLS policies and ORM scopes shift the responsibility from developer discipline to platform enforcement. Don't rely on discipline.

// 在你自己的應用上跑一遍

放心继續發布,FixVibe 持續幫你看守風险。

FixVibe 像攻击者一樣對你的應用公開面进行压力测試 —— 无代理、无安裝、无信用卡。我們持續研究新的漏洞模式,并把它們转化成实用检查和可直接用于 Cursor、Claude、Copilot 的修複方案。

主動探測
127
本類别中触發的测試
模塊
48
專属 主動探測 检查
每次扫描
487+
跨所有類别的测試
  • 免费 —— 无需信用卡,无需安裝,无需 Slack 通知
  • 只需粘贴 URL —— 我們爬取、探测、生成報告
  • 按严重程度分级,去重至只剩信號
  • AI-ready prompts where code applies, plus operator steps for DNS/provider fixes
運行免费扫描

// 最新检查 · 实用修複 · 安心發布

Cross-Tenant Data Leaks — 漏洞聚焦 | FixVibe · FixVibe