Contensis Security Review
A Contensis API key grants full access to every entry in the content types it secures. We test what every key, role and token can actually reach. CREST-certified testers, fixed price from £2,540 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.”
A Contensis API key grants full access to the content types and entries in its project, with no way to scope it down to one type or entry. We test how many live keys hold that reach and whether any one covers more than the site or app it was issued for.
Why a Contensis API key does not stop at one content type
Contensis separates two credential types at the API layer. A Delivery API request needs an Access Token, a read-only, environment-specific credential that Contensis’s own documentation confirms authorises retrieval of content from any project within that environment, passed as a query parameter or an Authorization header. An API key sits alongside it to secure specific content types, and Contensis’s guidance states plainly that a key grants full access to the content types and entries for the project it belongs to, so it should be protected the same way you would protect a password. We test which of these credentials actually ships in your frontend or backend integration, and how far each one reaches beyond the single site or app it was issued for.
Access inside the CMS itself runs on roles. Every user and every API key is assigned a role, and that role grants permission across seven workflow-tied events, view, create or save, submit or revoke, approve or decline, publish, unpublish and delete, rather than against individual files, assets or entries. A handful of system groups sit above roles entirely: System Administrators hold full access to all functionality, and API Key Administrators and Role Administrators can create, change or disable API keys and roles across every project in the instance, not just one. We test what every role, group membership and API key actually grants against the job it does, the same way we test the wider access-token and permission model behind a headless CMS integration.
The integration surface extends past content into deployment and automation. Blocks, Contensis’s website and app hosting feature, are permissioned separately with actions from Push and Release through to Make live and Manage environment variables, and Contensis’s own documentation describes a typical CI/CD role holding only Push and auto-Release, well short of a Blocks Administrator’s unrestricted access. Webhooks add another path out of the CMS, firing a JSON payload built from a template whenever a selected event occurs. We test your project, roles, API keys, webhooks and Block deployment configuration, not the hosted application Zengenti operates underneath them.
SCOPE
What we pen test on a Contensis instance
Delivery API Access Tokens and Environment Reach
A Delivery API request needs an Access Token: a read-only, environment-specific credential that Contensis’s own documentation confirms authorises retrieval of content from any project inside that environment, not just the one your build was written for. The token can travel as a query parameter or an Authorization header, so whichever route your frontend uses decides how exposed it is in logs, browser history and cached URLs. We test which token variant ships in your production build and how far it can actually reach.
API Keys and Content Type Security
An API key exists to secure specific content types, and Contensis’s guidance states it grants full access to the content types and entries for the project it belongs to, recommending it be protected the same way as a password. Contensis also recommends issuing a separate key per website or application so a compromised key can be disabled without cutting off every other integration. We test how many live keys exist, which content types each one actually unlocks, and whether that guidance was followed.
Management API OAuth 2.0 Client Credentials
The Management API authenticates over the OAuth 2.0 client credentials flow against the identity provider that runs as part of your hosted Contensis application: a client supplies a clientId, a shared secret and a list of scopes, created in the API Management screen, to request an access token that is cached and sent as an Authorization header on every request. A failed authentication attempt returns a 401 response rather than any detail about why. We test how those client credentials are generated, stored and rotated across every system that imports or manages content this way.
OAuth Scope Granularity Across Clients
Scopes are supplied as a space-separated list on the token request, and Contensis ships Project_Read, Entry_Read, Entry_Write, which covers creating, updating and publishing an entry, and Entry_Delete as the available options. A client granted Entry_Write or Entry_Delete can act on every entry its role can reach, since scopes control which actions an API call can perform rather than which specific entries it can touch. We test whether each Management API client actually holds the narrowest combination of scopes its integration needs.
Roles and the Seven Workflow-Tied Permissions
Every user and every API key in Contensis is assigned to a role, and that role is built from seven workflow-tied permissions: view, create or save, submit or revoke, approve or decline, publish, unpublish and delete. Contensis’s own documentation is explicit that roles do not provide granular access to individual files, assets or entries, so a role with access to a content type reaches every entry created under it. We test whether every role and API key in your project holds only the permissions and content types its purpose actually needs.
System Groups with Instance-Wide Reach
A small set of built-in system groups sit above project-level roles entirely and carry permission across every project in the instance: System Administrators hold full access to all functionality, API Key Administrators can create, update, delete, enable and disable API keys, and Role Administrators can create, update and delete roles and assign permissions to system resources. Membership of any of these groups reaches further than a role scoped to a single project ever can. We test who actually holds instance-wide group membership against who your organisation intends to hold it.
Multi-Project Boundaries in One Environment
A project is the repository that holds all the entries and assets for one site or application, and a Contensis licence can hold several projects, with a user able to carry a different role in each one they belong to. Because a Delivery API Access Token authorises retrieval of content from any project inside its environment rather than being pinned to the one it was issued for, a token scoped for a single site’s build can potentially read every other project sharing that environment. We test whether your tokens, roles and integrations actually respect the boundary between projects that your organisation assumes is enforced.
Webhook Payload Templates and Events
A webhook sends a JSON payload built with Liquid templating to a URL you configure whenever a selected event, among them Created, Updated, Published, Unpublished and workflowStateChange, occurs against a resource, and Contensis offers default, custom or empty payload types depending on what the receiving endpoint expects. The Use custom templates permission decides who can edit that payload separately from who can create, update, delete or simply view the webhook itself. We test what a custom payload template can be made to expose and whether your receiving endpoint verifies the request before acting on it.
Blocks Deployment and Environment Variable Access
Blocks, Contensis’s website and app hosting feature, are permissioned through the same role system with distinct actions covering Push, where a CI or CD build pushes a Block to Contensis, Release, Make live or rollback, Start or Stop, Mark as broken, Delete, View, and Manage environment variables. Contensis’s own guidance describes a typical CI/CD role holding only Push with auto-Release, well short of a Blocks Administrator role, which holds every action unrestricted. We test whether your CI credentials, and the environment variables a Block role can reach, actually stay inside that narrower set.
Image Transformation Parameters
The Image API applies resize, crop, rotate and grayscale transformations from parameters appended directly to an image URL, processes files up to 25Mb, and caches the resulting output for faster delivery next time the same transformation is requested. Because the transformation runs from whatever parameters arrive on the URL, the caching layer and the parameter set your integration builds both become part of what a request can actually do. We test how your integration constructs and validates those URL parameters before they reach the Image API.
OUR PROCESS
Contensis Security Review: From Scope to Attestation
Scope and Access Mapping
We agree the projects, environments and roles in scope, and map every API key, OAuth client, webhook and Block deployment role configured across the instance before testing begins.
Role and Token Boundary Testing
Authenticated and unauthenticated checks across every role, API key, OAuth scope and Delivery API access token, plus targeted checks against the permission actions configured for Blocks, webhooks and proxies.
Manual Exploitation
A CREST-certified tester manually tests scope boundaries, role and system group permissions, webhook payload handling and Block deployment access, chaining findings where they compound.
Reporting 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 Contensis 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 Contensis 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 5 testing days
Multi-role SaaS, business application with payment integration. Around 8 to 12 working days from kickoff to report.
Get a fixed quote5 to 7 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 Contensis 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 Contensis 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 Contensis instance?
An account under each distinct role your project defines, at least one live API key if Delivery API integrations are in scope, and a Management API client, its clientId, shared secret and scopes, if you use it to import or manage content. Access to a Blocks CI role and its environment variables speeds up coverage where deployment is in scope, but is not required for black-box testing.
Does this touch our live data?
We test against a staging project or a cloned copy of your content wherever one exists. Where only production is available, anything that could publish, unpublish or delete an entry, or make a Block live, is agreed and scoped in advance, and read-only checks are logged as they happen.
How long does a Contensis security review take?
A single-instance Contensis engagement is scoped at 2 testing days as a starting point, rising with the number of projects, roles, API keys and webhooks configured. Reporting and a walkthrough call follow testing, with a free retest once fixes are in.
Is a Contensis instance tested differently depending on how it is hosted?
The Management API’s identity provider and the Blocks hosting feature both run as part of the application Zengenti operates, so testing concentrates on your projects, roles, API keys, webhooks and Block deployment configuration rather than that underlying infrastructure. We confirm during scoping exactly which projects, environments and integrations are in scope.
What is out of scope?
The Contensis application and hosting infrastructure that Zengenti operates, since that is Zengenti’s to secure rather than something your configuration changes. Third-party services connected only through a webhook or a Renderer you have not customised, unless you scope a wider review alongside it.
Do you need our source code?
No. Testing is black-box against the running CMS, Delivery API and Management API by default. A grey-box option, reviewing the custom Renderers, Proxies or integration code your team built on top of Contensis, is available if you want faster or deeper coverage of specific findings.
Does Contensis have a policy for reporting security issues?
Zengenti, the company behind Contensis, publishes a responsible disclosure policy covering its own software and supporting systems, asking researchers to report to security@contensis.com with a non-destructive proof of concept and to avoid accessing or extracting personal data. That policy governs vulnerabilities in Zengenti’s hosted platform, not the roles, keys and integration configuration this engagement tests, so we confirm Zengenti’s current customer-testing terms with you during scoping before testing starts.
Do you test our Blocks deployments and webhook integrations, or just CMS roles?
Both. We test the roles, API keys, OAuth scopes and permissions inside your Contensis projects, and the Blocks deployment pipeline, webhook payloads and any custom Renderers or Proxies your team has built on top of Contensis.
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 Contensis instance
A Contensis API key grants full access to every entry in the content types it secures. We test what every key, role and token can actually reach. CREST-certified testers, fixed price from £2,540 for a 2-day single-instance scope, quoted within 24 hours.



