Weaviate Security Review
Weaviate’s default setup runs with anonymous access on and no roles configured at all. We test authentication, role and tenant permissions, and what one tenant’s query can reach in another. CREST-certified testers, fixed price from £2,620 for a 2-day single-instance scope, quoted within 24 hours.
- Unlimited retesting
- Unlimited pre-retesting
- No hidden fees
“I would highly recommend EJN Labs to any organisation seeking reliable, detailed, and well-managed penetration testing services, particularly for government or enterprise-level projects.”
“There wasn’t another company we could find that could deliver what we needed in the timeframe we needed. The client loved it, and we got instant ROI from the engagement.”
Weaviate’s own default Docker command sets AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED to true, and its documentation calls anonymous access strongly discouraged outside development or evaluation. We test whether it is still switched on, and what role a request without any credentials can reach.
Why Weaviate security comes down to what RBAC and multi-tenancy actually enforce
Weaviate’s own Docker Compose guide confirms that its documented default command sets AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED to true, and its authentication documentation calls anonymous access strongly discouraged outside development or evaluation. Role-based access control is a separate switch again: Weaviate’s RBAC configuration guide turns it on through its own environment variable, and Weaviate ships with exactly two predefined roles, root with full access to every resource and viewer with read-only access to every resource; any authenticated user assigned neither has no permissions at all. Weaviate’s own RBAC overview warns that permissions to manage roles can be used to escalate privileges by assigning further roles to a user, and says they should only ever go to trusted accounts, so we test who holds that permission against who genuinely administers the deployment.
That same model scopes down to individual tenants: Weaviate’s documentation on managing roles lists a Data Objects permission that can be filtered by both collection name and tenant name, so a role can be scoped to a single tenant of a single collection rather than the whole deployment. Multi-tenancy is documented as isolation by shard, with Weaviate’s multi-tenancy guide stating plainly that data stored in one tenant is not visible to another, but which tenant a request actually reaches is chosen by a tenant identifier the calling application passes on every query, and the same guide warns that near-identical names such as TenantOne, tenantOne and TenntOne become three separate tenants once automatic tenant creation is switched on. We test whether that identifier is checked against the caller’s own account before a query runs. For the wider family of technologies this scope splits from, see our NoSQL, cache and streaming security review.
Authentication goes deeper than the three top-level methods suggest. Weaviate’s OIDC configuration reference notes that skipping the client ID audience check is not recommended because it reduces security, and its group role mapping guide is explicit that Weaviate has no API to create a group and only becomes aware of one the first time a role is assigned to it, with no automatic re-sync against your identity provider afterwards. Weaviate Cloud moves the same questions into a console: a new cluster ships with no API keys, each key is bound to a role and shown in full only once, and Weaviate’s Weaviate Cloud authorization guide confirms role changes take effect immediately for every key assigned to that role. Weaviate also runs a public disclosure programme scoped to Weaviate Cloud sandbox accounts, the console service and its open-source repository, and we confirm your own cluster’s testing terms against that scope during scoping. For how the same tool-permission and retrieval questions play out in a RAG application built on top of it, see our AI penetration testing.
SCOPE
What we review in a Weaviate deployment
Authentication Methods and Anonymous Access
Weaviate authenticates users through API keys, OpenID Connect or anonymous access, and its documented default Docker command sets AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED to true, a setting its own documentation calls strongly discouraged outside development or evaluation. We test which of these methods are actually enabled on the instance in scope, and what an unauthenticated request can still reach if anonymous access was never turned off.
OIDC Audience Checks and Group Role Mapping
Weaviate’s OIDC configuration maps a token claim such as email to a Weaviate username and validates the token’s audience against a configured client ID, a check its own reference calls not recommended to skip because doing so reduces security; Weaviate also has no API to create a group and only becomes aware of an OIDC group the first time a role is assigned to it, with no automatic re-sync against your identity provider afterwards. We test whether the audience check is enforced and whether a group’s Weaviate roles still match what that group is used for today.
RBAC Roles and Role-Management Privilege Escalation
Weaviate ships two predefined roles, root with full access to every resource and viewer with read-only access to every resource, and any authenticated user assigned neither has no permissions at all; its own documentation warns that permissions to manage roles can be used to escalate privileges by assigning further roles to a user, and says these should only ever go to trusted accounts. We map who actually holds role-management permissions against who genuinely needs to administer the deployment.
Data Object Permissions Scoped by Collection and Tenant
Weaviate’s Data Objects permission can be filtered down to a collection name and a tenant name at the same time, so a role can be restricted to reading or writing objects in one tenant of one collection rather than the whole deployment. We test whether the roles and API keys your application actually uses are scoped this tightly, or whether a key built for one tenant can still reach another because the filter was never applied.
Multi-Tenancy Isolation and the with_tenant Call
Weaviate documents multi-tenancy as isolation by shard, with data stored in one tenant not visible to another, but which tenant a given request actually reaches is chosen by a tenant identifier the calling application passes with a with_tenant call on every query. We test whether that identifier is checked against the caller’s own account before the query runs, the same boundary that matters most in a RAG application serving more than one customer from the same collection.
Auto-Tenant Creation and Near-Duplicate Tenant Names
By default Weaviate returns an error when you insert into a tenant that does not exist, but with autoTenantCreation enabled it creates one silently, and Weaviate’s own documentation warns that TenantOne, tenantOne and TenntOne are created as three separate tenants rather than treated as one. We test whether autoTenantCreation is switched on where it does not need to be, and whether an unvalidated tenant name from a client request can spin up an empty tenant instead of failing safely.
Where-Filter Construction in Queries and Batch Deletion
Weaviate’s where filter, built from a property, an operator such as Equal or GreaterThan, and a value, applies to object-level queries, aggregate queries and batch deletion alike. We test the code that builds that filter for unsanitised input reaching it, particularly on batch deletion, where a manipulated filter can remove far more than the caller was ever meant to touch.
Backup Permissions and Collection Scope
Weaviate’s RBAC model gives backups their own resource type, scoped by a collection name filter, so a role can be limited to managing backups for specific collections rather than the whole deployment. We test who actually holds backup permissions against who needs them, and whether a role created for backup automation can also read or restore collections it was never meant to touch.
Weaviate Cloud API Keys and Console Roles
A new Weaviate Cloud cluster ships with no API keys until you create one, each key is bound to a role such as admin or viewer or a custom role, and a key is shown in full only once and cannot be retrieved again after that. We test where each key ends up stored in your application, what role it actually carries, and whether a role change in the console reaches every key that depends on it the way Weaviate documents.
Cluster and Node Metadata Exposure
Weaviate’s RBAC model separates Cluster Data Access, which reads cluster metadata, from Node Data Access, which reads node metadata at a minimal or a verbose level, with the verbose level scoped down by collection name. We test which roles and API keys can read this metadata, and whether a broadly scoped grant reveals more about your deployment’s collections than the caller needs to see.
OUR PROCESS
Weaviate Security Review: From Scope to Attestation
Scope and Access
We agree which collections, tenants and Weaviate Cloud clusters or self-hosted instances are in scope, plus an authenticated user or API key for every role you want tested.
Role and Tenant Mapping
We map every RBAC role, OIDC group and tenant against who or what actually needs that level of access, on self-hosted Weaviate and Weaviate Cloud alike.
Manual Testing
A CREST-certified tester manually tests authentication and anonymous access, RBAC role scope and privilege-escalation paths, tenant isolation and auto-tenant creation, and where-filter handling in queries and batch deletion, chaining findings where they compound.
Attestation and Retest
You get a technical report with CVSS scores and reproduction steps, a walkthrough call, a free retest once fixes are deployed, and an attestation letter for auditors.
CREDENTIALS
Verified Accreditations Auditors Accept
Every credential below is independently verifiable. UK procurement teams, FCA supervisors, ISO 27001 / SOC 2 auditors, and cyber insurance underwriters all recognise these standards.
GET YOUR QUOTE
Get a CREST Weaviate pen test quote in 24 hours
A fixed-price quote back in one business day, from a named CREST assessor. No sales pipeline, no chasing.
- CREST and IASME accredited. Testing your auditors and clients already recognise.
- Fast-track testing within 24 hours where required. Free retest of every fix included.
- Live findings via your client portal, not a four-week PDF.
- Fixed price from £3,500 for a single-role, single-app scope, agreed up front. Most engagements run £5,000 and up. No day-rate surprises.
Under NDA Further named references available on a scoping call.
- We reply within one business day with a fixed-price quote from a named CREST assessor.
- You approve the scope and we book a start date, usually within 24 hours.
- Live findings land in your client portal as we test, with a free retest of every fix.
Get your fixed pen test quote in 24 hours
Quote request received
We will reply within one business day with your fixed-price quote from a named CREST assessor.
Your data stays with us. No newsletter signup.
or book a 20-min scoping call first
We reply within one business day. Your data stays with us. No newsletter signup.
COMPLIANCE READY
Reports Mapped to Every Framework
Findings are written so your team can reference the report against each framework without translation work.
ISO 27001:2022
Annex A.8.8 management of technical vulnerabilities plus A.5.15-5.18 and A.8.2-8.5 access control validation.
SOC 2 Type I & II
CC6 logical access, CC7 system operations, CC8 change management evidence.
PCI DSS
Requirement 11.4 application penetration testing across cardholder data environments, including ecommerce penetration testing for online retail platforms.
FCA SYSC
SYSC 4.1.1R, 6.1.1R, 13 mapped to each finding for FCA-regulated firms.
UK GDPR
Article 32 effectiveness testing, customer-data security controls, ICO-acceptable evidence.
Cyber Essentials Plus
Direct certification through our IASME body status, single-vendor delivery.
PRICING
Transparent Weaviate Security Review Pricing
Pricing depends on the number of roles, integrations and environments in scope. See our pricing page for how we quote.
2 to 3 testing days
Single user role, basic CRUD application, marketing website with auth. Around 5 working days from kickoff to report.
Get a fixed quote3 to 4 testing days
Multi-role SaaS, business application with payment integration. Around 8 to 12 working days from kickoff to report.
Get a fixed quote4 to 6 testing days
Multi-tenant platform, complex authorisation matrix, integration-heavy applications. Around 15 to 20 working days from kickoff to report.
Get a fixed quoteSECTORS
Sectors We Test Weaviate For
Sector-specific scoping for regulated UK organisations.
Fintech & FCA-Regulated
FCA SYSC, Open Banking FAPI 1.0, PSD2 SCA, payment-flow scrutiny, KYC/AML testing.
Fintech sector pageSaaS Companies
SOC 2 Type I & II evidence, multi-tenant boundaries, role escalation, customer-tenant isolation.
SaaS sector pageLaw Firms
SRA Cyber Standard, privileged data, conveyancing fraud defence, partner-tier procurement.
Law firm sector pageHealthcare
NHS DTAC, DSP Toolkit v6, UK GDPR Article 32, EHR systems, telehealth platforms.
Healthcare sector pageInsurance
FCA / PRA Operational Resilience, cyber underwriting, claims data, broker portals.
Insurance sector pagePublic Sector
CCS / G-Cloud framework, NCSC-aligned, citizen-facing services, PSN-compliance scrutiny.
Public sector pageWHY EJN LABS
What You Get From Weaviate Security Review
Six concrete differentiators competitors don’t all match.
CREST-Certified Testers, Verifiable
Every test by a CREST-certified pen tester (CRT, CCT APP, CCT INF where applicable). Verify our company status at crest-approved.org.
24-Hour Startup, Where Required
From signed scope to active testing in a single business day for incident response, audit deadlines, or regulator-driven timelines.
Live Findings, Not 4-Week PDFs
Critical issues reported during testing through your client portal. Your team remediates while testing continues.
Audit-Ready Reports
Executive summary plus full technical report with CVSS scores and explicit framework mappings (ISO 27001, SOC 2, PCI DSS, FCA SYSC).
Free Retests, Standard
Verify remediation of every finding before close-out. Letter of attestation for audit submission included. Most competitors charge £1,500-£3,000 per retest.
UK-Based CREST Testers
Every engagement performed by vetted, UK-based CREST-certified testers, matched to your needs, security clearance, and compliance scope.
FAQ
Frequently Asked
What access do you need to test our Weaviate deployment?
We need at least one authenticated user or API key for every role you want tested, from a viewer-level key through to one holding role-management permissions, plus the names of every tenant a multi-tenant collection uses. On Weaviate Cloud we also need console access or an admin-scoped key so we can review roles and API key assignments directly.
Will testing touch our live data?
We test the collections, tenants and clusters you nominate, working against your actual roles, filters and API keys rather than a copy, so we agree exclusions such as batch deletion or destructive backup restores before testing starts. We do not export real customer data or run destructive tests without that agreement in writing.
Do you test self-hosted Weaviate and Weaviate Cloud the same way?
The underlying questions are the same: which authentication methods are enabled, what each role can reach, and whether tenant isolation holds under a query your application actually builds. What differs is the boundary, since Weaviate Cloud manages the host and issues API keys through its own console, so we confirm during scoping exactly what you control on your plan and test to that boundary.
Is Weaviate’s multi-tenancy isolation automatic, or does our application have to enforce it?
Weaviate stores each tenant on a separate shard and its documentation confirms that data in one tenant is not visible to another at the storage level, but which tenant a given request reaches is chosen by a tenant identifier your application passes on every call. We test whether that identifier is validated against the caller’s own identity before the query runs, not just whether multi-tenancy is switched on.
What is out of scope for a single-instance Weaviate review?
We never test Weaviate’s own source code, the underlying host or infrastructure behind a Weaviate Cloud cluster, or Weaviate Cloud’s shared platform itself. We test the authentication, roles, tenant configuration and application-level query handling for the instance or cluster you nominate, and a separately hosted application that happens to query it is scoped and quoted on its own.
Does Weaviate have a policy on customer penetration testing?
Weaviate runs a public responsible disclosure programme covering Weaviate Cloud sandbox accounts, the console.weaviate.cloud service and the latest released version of its open-source repository, but that programme is not the same as a rule allowing customers to test their own production cluster. We confirm Weaviate’s current terms for testing your own cluster during scoping and test within them.
How long does a Weaviate security review take?
A single Weaviate instance or Weaviate Cloud cluster, with a limited number of collections, tenants and roles, sits in our 2-day single-instance scope, with a report typically landing around 5 working days after kickoff. More collections, multiple tenants at scale, or a mix of self-hosted and Weaviate Cloud deployments moves into a larger scope with more testing days.
Are your testers CREST certified?
Yes. Every Weaviate engagement is carried out by UK-based, CREST-certified testers, and your report and attestation letter are recognised by auditors and insurers accordingly.
20+ CREST-accredited testing services in one place
Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.
Get a fixed price for your Weaviate review
Weaviate’s default setup runs with anonymous access on and no roles configured at all. We test authentication, role and tenant permissions, and what one tenant’s query can reach in another. CREST-certified testers, fixed price from £2,620 for a 2-day single-instance scope, quoted within 24 hours.



