Penetration Testing

SaaS Penetration Testing: Why Multi-Tenancy Changes Everything

Key takeaways
  • In SaaS the defining risk is cross-tenant access - one customer reaching another customer's data.
  • Tenant isolation cannot be tested without at least two real tenants and credentials in each. A single-account test structurally cannot find it.
  • The API usually exposes more than the interface does, and object-level authorisation there is where cross-tenant leaks actually happen.
  • Your enterprise buyers will ask for a report. What they actually want to see is tenant isolation tested, so make sure it was.

For a SaaS application, the worst realistic finding is nearly always the same: a user of one customer reaching the data of another. Everything else - injection, misconfiguration, a stale dependency - matters, but cross-tenant access is the one that ends contracts and triggers breach notifications for every affected customer simultaneously.

That single fact should shape the whole test, and generic web application testing frequently does not.

Why single-account testing cannot find it

This is a structural point rather than a quality one. To find a tenant isolation failure, a tester needs an account in tenant A, an account in tenant B, and to systematically attempt to reach B from A. With credentials for only one tenant, the entire class is out of reach.

It gets worse with roles. A realistic SaaS product has several - owner, admin, member, read-only, perhaps a billing role and an external collaborator. Authorisation testing means attempting each boundary crossing: can a member do what an admin can, can a read-only user write, can a collaborator in tenant A see anything in tenant B. The number of pairs grows quickly, and this is exactly the work that gets trimmed when a scope is cut to fit a price.

Where cross-tenant leaks actually happen

Rarely in the user interface. The interface generally only offers what the current user is allowed to see, which is why clicking around produces a clean result and false confidence.

The leaks live in the API. An endpoint that accepts an object identifier and returns the object without checking which tenant owns it. A bulk export that filters by user but not by tenant. A webhook or a report generator running with elevated privileges and taking the tenant identifier from the request. A search index built across tenants with filtering applied at display time rather than at query time.

LayerCommon cross-tenant failure
REST or GraphQL APIObject ID accepted without a tenant ownership check
Bulk export or reportingFiltered by user, not by tenant
SearchIndex shared across tenants, filtered too late
Background jobsTenant taken from request input, running with elevated rights
File storagePredictable object paths, no ownership check on fetch
If your test did not have credentials in two tenants, it did not test tenant isolation. It tested a web application that happens to be multi-tenant, which is a different and much easier thing to pass.

What SaaS-specific testing should cover

Beyond the standard application surface, four things deserve explicit scope.

Tenant isolation across every data type and every entry point, driven from real accounts in separate tenants.

Role boundaries within a tenant, tested pairwise rather than sampled.

Provisioning and invitation flows. Inviting a user, accepting an invitation, changing a role, and removing access. Removal is the one that fails quietly: a revoked user whose session or API token keeps working is a common and serious finding.

Integrations and webhooks. Anything that carries a tenant identifier across a trust boundary, especially where a third party can influence it.

The commercial reason to get this right

SaaS companies mostly commission their first test because an enterprise prospect sent a security questionnaire. That is a reasonable trigger, and it creates a specific failure mode: buying the cheapest artefact that answers the questionnaire. We cover the broader timing question in when a startup needs a penetration test.

The buyer on the other side is increasingly sophisticated. Their security team - usually working from a SOC 2 or ISO 27001 checklist - knows the difference between a report that says "web application tested" and one that shows tenant isolation was attempted from a second tenant and held. The second one closes deals; the first one invites follow-up questions you would rather not receive. For cloud-specific controls, see the ISO 27017 and 27018 cloud controls.

If you want to see the reporting standard rather than take our word for it, our published research is written to the same bar, and the services page sets out what a SaaS engagement includes.

Frequently asked questions

What is different about penetration testing a SaaS application?

Multi-tenancy. The highest-severity realistic finding is one customer reaching another customer's data, so tenant isolation has to be the centre of the test rather than an afterthought. That requires credentials in at least two separate tenants.

Can a pentest find tenant isolation flaws with one account?

No, not structurally. Finding a cross-tenant failure means attempting to reach tenant B's data from an account in tenant A. With credentials for only one tenant, the entire class of flaw is outside what the test can reach.

Where do cross-tenant data leaks usually occur?

In the API rather than the interface. The interface generally only offers what the current user may see. Leaks come from endpoints accepting an object identifier without checking tenant ownership, exports filtered by user but not tenant, and shared search indexes filtered too late.

What do enterprise buyers look for in a SaaS pentest report?

Evidence that tenant isolation was actually attempted and held, role boundaries were tested pairwise, and access removal genuinely revokes sessions and tokens. A report that only says the web application was tested tends to generate follow-up questions rather than close the deal.

Related posts
Penetration Testing The Penetration Testing Process, Step by Step Penetration Testing Types of Penetration Testing: Black Box, Grey Box, White Box Penetration Testing Penetration Testing Methodology: PTES, OWASP and the Rest
Back to all posts