Qdrant Security Review
A self-hosted Qdrant instance has no authentication and binds to every network interface until you configure it. We test API key scope, network exposure, TLS settings and tenant isolation across collections. 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.”
Qdrant’s own documentation states that self-hosted deployments are not secure by default: open to all network interfaces with no authentication configured, and reachable by everybody on the internet until you configure otherwise.
Why Qdrant security comes down to what is open before you configure it
Qdrant’s own documentation on security and access control is direct about what a self-deployed instance ships with: it is open to all network interfaces and has no authentication configured, and may be reachable by everybody on the internet until you set that up. Qdrant supports three API key types: an Admin API Key with full access to every operation and collection, a Read-Only API Key limited to read operations, and Granular Access API Keys, built on JSON Web Tokens, that scope read or write permission to individual collections. On Qdrant Cloud, granular access API key authentication is enabled by default; on a self-hosted instance it has to be switched on with the jwt_rbac configuration flag alongside an api_key, and a separate value_exists claim can tie a token’s validity to a point still existing in a chosen collection, letting an application revoke a token by changing that point rather than rotating the key.
Network exposure follows a similar pattern. Qdrant’s own guidance states that a custom deployment binds to all network interfaces by default, so an instance can be reachable by everybody on the internet unless it is bound to a specific address, such as 127.0.0.1 for local development or a private interface in production. Encryption in transit works the same way round: connections are unencrypted by default, which the documentation itself warns allows sniffing and man-in-the-middle attacks, so TLS has to be enabled explicitly with the enable_tls setting and a certificate before that risk closes. Where several tenants share one collection, Qdrant’s multitenancy guide recommends partitioning by a payload field such as group_id rather than creating a collection per tenant, with isolation enforced entirely by the filter your application adds to every query.
Qdrant Cloud moves some of these questions into the console instead. Its Cloud RBAC covers identity and access management, cluster and backup administration, Hybrid Cloud environments and billing, and Qdrant’s own documentation notes that current permissions apply across an entire account rather than to a single cluster; Premium customers can add single sign-on and connect a cluster to their own VPC over a private link. For the wider family of NoSQL, cache and streaming platforms this scope splits from, see our NoSQL, cache and streaming security review, and where Qdrant sits inside a retrieval pipeline for a language model, our AI and LLM penetration testing covers what the wider application does with what it retrieves.
SCOPE
What we pen test on a Qdrant deployment
Authentication: Admin, Read-Only and Granular API Keys
Qdrant’s own documentation on security and access control is direct that a self-deployed instance ships with no authentication configured and is open to all network interfaces, reachable by everybody on the internet until you secure it. Qdrant supports three key types: an Admin API Key with full access to every operation and collection, a Read-Only API Key limited to read operations across the instance, and Granular Access API Keys that scope down to individual collections. We test which key type is actually configured on every route into an instance, and whether an admin-level key is reachable anywhere it should not be.
Granular Access API Keys, JWT Scoping and the value_exists Claim
Granular Access API Keys are built on JSON Web Tokens: the token’s access claim can grant global read-only or manage access, or scope down to one or more named collections with r for read-only or rw for read-write on each one, and jwt_rbac is enabled by default on Qdrant Cloud but has to be switched on deliberately, alongside an api_key, on a self-hosted instance. A separate value_exists claim can tie a token’s validity to a point still existing in a chosen collection, so an application can revoke a token by changing that point rather than rotating the underlying API key. We test what a token’s access claim actually grants against what its holder needs, and whether a value_exists check is relied on anywhere without also being enforced.
Network Bind Defaults
Qdrant’s own guidance states that a custom deployment binds to all network interfaces by default, so an instance can be reachable by everybody on the internet unless it is deliberately bound to a specific address, such as 127.0.0.1 for local development or a private interface in production. Qdrant Cloud clusters are bound only to their assigned endpoint and are secure by default. We test what interface and address a self-hosted instance is actually reachable on, and whether a bind address chosen for one environment has carried into another.
TLS as an Opt-In Setting
Qdrant’s own configuration guidance states that connections are unencrypted by default, which it warns allows sniffing and man-in-the-middle attacks, and that TLS has to be switched on explicitly with the enable_tls setting and a certificate before that risk closes. Client certificate validation against a local certificate authority is a separate, optional layer on top of server-side TLS. We test whether TLS is actually enabled on every route into an instance, not only the one used during setup, and whether an API key can still reach the service unencrypted.
Multitenancy via Payload Partitioning
Qdrant’s own multitenancy guide recommends keeping every tenant inside one shared collection and separating them with a payload field such as group_id, indexed with is_tenant set to true, rather than creating a separate collection per tenant. Isolation then depends entirely on the filter your application adds to every request, since Qdrant itself does not decide which tenant a query is allowed to see. We test whether that filter is applied consistently across every code path that reads or writes the collection, and whether a request can omit or override it.
Snapshot, Backup and Cluster-Admin Permission Boundaries
Qdrant’s own access table shows that full snapshot and cluster-wide operations, such as creating a full snapshot, viewing cluster info or setting resource quotas, are restricted to manage-level access, while a key scoped to read-write or even read-only access on a single collection can still create or download a snapshot of that collection. On Qdrant Cloud, read, write and delete permissions for backups and backup schedules sit in Cloud RBAC, separate from the database API keys that actually connect to a cluster. We test who and what holds manage-level access against who needs it, and whether a collection-scoped key can pull a snapshot it should not be able to reach.
Audit Logging, Tracing IDs and the /audit/logs API
Audit logging records every authenticated API operation to a JSON log file, but Qdrant’s own documentation confirms it is not enabled by default and has to be switched on in configuration. Once enabled, entries can be queried through the /audit/logs API, which itself requires manage-level access, and a trust_forwarded_headers setting that reads the client IP from an X-Forwarded-For header is documented as something that lets clients spoof their IP on a publicly reachable instance. We test whether audit logging is enabled, who can query it, and whether trust_forwarded_headers is switched on somewhere it should not be.
Qdrant Cloud Cluster Access, Ports and Client IP Restrictions
A Qdrant Cloud cluster exposes its REST API on port 6333 and its gRPC API on port 6334, load balanced across every healthy node, alongside node-specific endpoints used for monitoring or manual shard management. Cluster UI access authenticates automatically for a cloud user holding the read:cluster_data or write:cluster_data permission, and access to the cluster endpoint itself can be restricted to specific IP ranges. We test what each port and node-specific endpoint actually exposes, and whether an IP restriction that should limit access to the cluster is configured and enforced.
Cloud RBAC and Premium SSO for the Cloud Console
Cloud RBAC controls access to the Qdrant Cloud console itself, covering identity and access management, cluster and backup administration, Hybrid Cloud environments and billing, and Qdrant’s own documentation notes that current permissions apply across an entire account rather than to a single cluster. Premium customers can add single sign-on through their own identity provider on top of this. We map every console role against who actually needs administrative reach, and check whether an account-wide permission was granted for what only needed to touch one cluster.
Vector Payloads Reaching Retrieval-Augmented Generation Applications
A Qdrant collection stores payload text or metadata alongside each vector, and a search or recommend request’s results are the input a retrieval-augmented generation pipeline passes straight into a prompt for the language model that queries it. We test what a retrieval query can actually pull out of a collection given the caller’s access level and any tenant filter, and whether payload data a tenant or role should not see can still reach a model’s context window, as part of our wider AI and LLM penetration testing.
OUR PROCESS
Qdrant Security Review: From Scope to Attestation
Scope and Access
We agree which Qdrant collections, self-hosted instances or Cloud clusters are in scope, plus an API key or JWT for every access level you want tested and, where relevant, Cloud console access to review RBAC and SSO configuration.
Access and Permission Mapping
We map every API key, JWT access claim, console role and payload filter against who or what actually needs that level of access, on self-hosted instances and in Qdrant Cloud.
Manual Testing
A CREST-certified tester manually tests authentication and API key scope, network exposure and TLS configuration, multitenancy isolation and Cloud RBAC, 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 Qdrant 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 Qdrant 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 Qdrant 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 Qdrant 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 Qdrant deployment?
We need an API key or JWT for every access level in scope, from a read-only or collection-scoped key through to an Admin API Key on a self-hosted instance, or the equivalent Cloud RBAC role for a managed cluster. Read access to your collection schema and any payload fields used for multitenancy speeds up the review, though we can test with API-level access alone.
Will testing touch our live data?
We test the collections and clusters you nominate, working against real API keys, JWT claims and payload filters rather than a copy, so we agree exclusions such as destructive deletes or production replica targets before testing starts. We do not export real customer vectors or payload data, or run destructive tests, without that agreement in writing.
Do you test self-hosted Qdrant and Qdrant Cloud the same way?
The underlying questions are the same: what key or token grants access, what the network exposes, and whether tenant isolation actually holds. What differs is the boundary, since Qdrant Cloud manages the host, TLS termination and features such as backups and private links, so we confirm during scoping exactly what you control on your plan and test to that boundary.
What is out of scope for a single-instance Qdrant review?
We never test Qdrant’s own source code, the underlying host or hypervisor of a managed Cloud cluster, or Cloud’s shared infrastructure, and a separately hosted application that happens to query the database is scoped and quoted on its own. We test the authentication, network configuration, TLS, multitenancy and Cloud RBAC for the instance or cluster you nominate.
Does Qdrant have a policy on customer penetration testing?
For a self-hosted, open-source Qdrant instance you deploy and control yourself, there is no vendor to notify for the software itself. For Qdrant Cloud, Qdrant publishes SOC 2 Type 2 and HIPAA compliance documentation for its managed infrastructure; we confirm Qdrant’s current terms for testing your Cloud project during scoping and test within them.
Is our AI or RAG application also covered?
Not by a Qdrant security review on its own. This scope tests the Qdrant deployment itself: its API keys, network exposure, TLS and multitenancy. Where Qdrant sits inside a wider retrieval-augmented generation pipeline, our AI and LLM penetration testing covers how the application prompts the model and handles what it retrieves.
How long does a Qdrant security review take?
A single Qdrant instance or Cloud cluster, with a limited number of collections and API keys, sits in our 2-day single-instance scope, with a report typically landing around 5 working days after kickoff. Multiple clusters, a mix of self-hosted and Cloud deployments, or a large multitenant collection set moves into a larger scope with more testing days.
Are your testers CREST certified?
Yes. Every Qdrant 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 Qdrant review
A self-hosted Qdrant instance has no authentication and binds to every network interface until you configure it. We test API key scope, network exposure, TLS settings and tenant isolation across collections. CREST-certified testers, fixed price from £2,620 for a 2-day single-instance scope, quoted within 24 hours.



