TECHNOLOGIES: GHOST

Ghost Penetration Testing

The Administrator role can inject code that runs on every page, reaching every visitor. We test each staff role, API key and member tier against what it should reach. CREST-certified testers, fixed price from £2,540 for a 2-day single-platform scope, quoted within 24 hours.

  • Unlimited retesting
  • Unlimited pre-retesting
  • No hidden fees
Accredited & recognised
Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified Crown Commercial Service supplier UK Cyber Security Council member
CREST
Approved Provider
10
Ghost Test Areas
FREE
Retest Until Closed
24h
Scope to Active Test
CLIENT REFERENCE
“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.”
SquareOneImran SaghirProject Lead, SquareOneRead the SquareOne case study →
CLIENT REFERENCE
“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.”
CelloriDan WilcocksonFounder, CelloriRead the Cellori case study →
See all case studies →
WHY IT MATTERS
5

Ghost has five staff roles, and the sitewide code injection box sits behind the Administrator tier, the same tier Ghost describes as having full permissions to edit all data and settings.

Why Ghost security comes down to roles and API keys

Ghost separates staff access into five roles. Contributors can log in and write posts but cannot publish, Authors can create and publish their own posts and tags, Editors can invite, manage and edit Authors and Contributors, Administrators have full permissions to edit all data and settings, and the Owner is an Administrator who cannot be deleted and holds the billing details, according to Ghost’s own staff documentation. Settings, including the sitewide code injection box, sit inside that Administrator tier, so we test exactly which accounts can reach it and what happens if one is shared, phished or left active after someone leaves.

Every Custom Integration created under the Integrations screen issues a paired Content API key and Admin API key. The Content API key is passed as a URL query parameter and is documented as safe for browsers because it only ever provides access to public data, while the Admin API key must stay private: it is split into an id and secret and exchanged for a short-lived JSON Web Token before it can read or write posts, pages and members. We check where each key actually lives, whether a webhook target trusts the payload Ghost sends it, and whether one integration carries more reach than the job it was built for.

Members can be free or paid, and a post can be set to Public, Members only, Paid-members only or a specific tier from the editor. Ghost states that gated content is protected at server level with no way round it without a logged-in member session, so we test that claim across every surface a post can reach, including the theme’s own Handlebars templates, not just the page a browser loads first. On a self-hosted instance the server, MySQL database and the fixed /ghost/ admin path installed by Ghost-CLI join that scope; on Ghost(Pro) the platform itself is managed for you, and testing concentrates on what you have configured inside it.

SCOPE

What we pen test on a Ghost instance

GH-01

Staff Roles and Publishing Permissions

Ghost’s five staff roles, Contributor, Author, Editor, Administrator and Owner, each reach a different slice of the admin area, from writing without publishing rights to full control of data and settings. We test what each role can actually do against what your team assigns it, including what an Editor can change on someone else’s post.

GH-02

Settings and Sitewide Code Injection

The code injection box lets an Administrator or the Owner paste raw code that runs on every page the site serves. We test who holds that access, how tightly it is guarded, and what a compromised Administrator account could do with it.

GH-03

Content API Key Scope

A Content API key is passed in the URL and is designed to be safe for browsers because it only ever returns public, published data. We test that any key exposed in your theme’s JavaScript cannot reach anything beyond what an anonymous visitor already sees.

GH-04

Admin API Key and Token Generation

An Admin API key is split into an id and secret and exchanged for a short-lived JSON Web Token that can read and write posts, pages and members. We check where the key is stored, whether it ever reaches client-side code or a public repository, and how its expiry and scope are handled.

GH-05

Custom Integrations and Webhooks

Each Custom Integration pairs an Admin API key and a Content API key with its own webhooks, and a webhook posts a JSON payload to any internet-reachable URL you configure for events like a post publishing or a member being added. We test whether the receiving endpoint verifies what it receives, and whether one integration’s keys carry more reach than the job it was built for.

GH-06

Member Tiers and Post Visibility

Every post can be set to Public, Members only, Paid-members only or a specific tier, and Ghost states that gated content is enforced at server level rather than in the theme. We test that a free member cannot reach paid-tier content and that visibility holds everywhere the post can appear.

GH-07

Gated Content Across Feeds and Caching

Visibility is set once in the editor, but a post can also surface through RSS, the sitemap, search and any cache or CDN in front of the site. We test whether members-only and paid-only content is genuinely absent from each of those surfaces, not only the copy served to a logged-out browser.

GH-08

Member Sign-Up and Sign-In

Ghost signs members in with a passwordless, emailed JWT link rather than a password. We test that link for reuse after it has been used once, its expiry, and whether it can be intercepted or replayed to reach someone else’s member account or paid subscription.

GH-09

Theme Code and Handlebars Helpers

Ghost themes are built in Handlebars, and Ghost’s own security documentation says its default string escaping matters especially in custom Handlebars helpers. We review any custom theme code and helpers your team has added or commissioned for output that skips that escaping.

GH-10

Self-Hosted Infrastructure vs Ghost(Pro)

Self-hosted, Ghost-CLI configures its own MySQL user, NGINX and systemd setup, with the admin area fixed at /ghost/ on the same domain by default. On Ghost(Pro) that infrastructure is managed for you, so testing concentrates on the roles, keys, members and theme code you control either way.

OUR PROCESS

Ghost Penetration Testing: From Scope to Attestation

01

Scope, Roles and Key Inventory

We agree the environments, staff roles, member tiers, API keys, integrations and theme code in scope before testing begins.

02

Automated and Authenticated Scanning

Scanning runs unauthenticated and as each staff role and member tier, alongside targeted checks against known Ghost configuration weaknesses.

03

Manual Exploitation

A CREST-certified tester manually tests role boundaries, API key scope, webhook trust and custom theme code, chaining findings where they compound.

04

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 Ghost 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.
What clients say
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.
CelloriDan WilcocksonFounder, Cellori

Under NDA Further named references available on a scoping call.

What happens next
  1. We reply within one business day with a fixed-price quote from a named CREST assessor.
  2. You approve the scope and we book a start date, usually within 24 hours.
  3. Live findings land in your client portal as we test, with a free retest of every fix.
Accredited & recognised
CREST member Cyber Essentials certified Cyber Essentials Plus certified IASME certifying body ISO 27001 certified ISO 9001 certified UK Cyber Security Council Crown Commercial Service supplier

Get your fixed pen test quote in 24 hours

⚡24h reply ✓CREST tester ↻Free retests

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 Ghost Penetration Testing Pricing

Pricing depends on the number of roles, integrations and environments in scope. See our pricing page for how we quote.

✦ ALWAYS · ON EVERY TIER · NO EXCEPTIONS ✦
✓Free retests, no time limit
✓Free rescheduling
✓No cancellation fees
✓24-hour scope to active testing
✓Live findings to client portal
✓Executive + technical report
✓60-min walkthrough call
✓Letter of attestation
SMALL / SMB
£2,540–£3,730
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 quote
ENTERPRISE
£5,970–£9,090
5 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 quote

Full UK pen test cost guide

WHY EJN LABS

What You Get From Ghost Penetration Testing

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 Ghost site?

An Administrator account so we see the same settings, code injection box and integrations your team manages, plus at least one Author or Contributor account and a free and a paid member login to test the boundaries between them. Access to any custom theme code or webhook endpoints you have built speeds up coverage but is not required for black-box testing.

Does this touch our live data?

No. We test against a staging site or a cloned copy of your content wherever one exists. Where only production is available, any check that could affect real posts, members or billing is agreed and scoped in advance, and read-only checks are logged as they happen.

How long does a Ghost penetration test take?

A single-platform Ghost engagement is scoped at 2 testing days as a starting point, rising with the number of staff roles, integrations, member tiers and custom theme code in play. Reporting and a walkthrough call follow testing, with a free retest once fixes are in.

Is self-hosted Ghost tested differently from Ghost(Pro)?

Yes. Self-hosted, the server, MySQL database and the fixed /ghost/ admin path are in scope alongside the application, since Ghost-CLI configures all three during installation. On Ghost(Pro) that infrastructure is managed by Ghost, so testing concentrates on your staff roles, members, API keys, integrations and theme code.

What is out of scope?

The open-source Ghost core codebase itself, since that is Ghost’s platform to secure rather than something your configuration changes. Third-party themes or plugins you have not customised, and any infrastructure outside the Ghost application, unless you scope a wider cloud or network review alongside it.

Does Ghost have a policy for reporting security issues?

Ghost runs a responsible disclosure programme for its own platform: vulnerabilities in Ghost core are reported to security@ghost.org, and the team works privately with researchers before any public disclosure. That covers issues in Ghost itself, not the roles, keys, members and theme code you have configured, which is what this engagement tests. We confirm Ghost’s current terms with you during scoping before any testing starts, particularly if you run on Ghost(Pro).

Do you test theme code as well as the admin area?

Yes, where you have a custom or customised Handlebars theme. We review the templates and helpers your team has added or commissioned for logic that could undermine Ghost’s own output escaping, alongside the roles, keys and member tiers configured in the admin area.

Can code injection be tested safely?

Yes. We review who holds Administrator or Owner access to the code injection box and how tightly that access is controlled, without adding untested code to your live site. Any proof-of-concept for a code-injection finding is scoped and agreed with you first.

EXPLORE EVERY SERVICE

20+ CREST-accredited testing services in one place

Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.

Penetration testing services
READY TO START

Get a fixed price for your Ghost site

The Administrator role can inject code that runs on every page, reaching every visitor. We test each staff role, API key and member tier against what it should reach. CREST-certified testers, fixed price from £2,540 for a 2-day single-platform scope, quoted within 24 hours.