TECHNOLOGIES: DISCOURSE

Discourse Penetration Testing

Discourse grants real access automatically once a member crosses a trust level threshold you configured. We test your trust levels, category permissions, plugins and API keys against what your community should allow. CREST-certified testers, fixed price from £2,060 for a 2-day single-site 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
Discourse 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
0-4

Every Discourse account sits at one of five trust levels, 0 to 4, and each level unlocks new abilities and permissions automatically the moment an account reaches it.

Why Discourse findings are trust levels and configuration, not the codebase

Discourse does not give every logged-in member the same access: every account sits at trust level 0 to 4, and Discourse’s own trust level guide sets out exactly what changes at each threshold. A trust level 0 account cannot send a private message or flag a post, trust level 1 removes those restrictions and adds wiki editing, and trust level 4 is granted only by manual staff promotion and can edit, pin or merge any topic on the site. We test what a real account actually holds at each trust level on your site, using the thresholds and group memberships you have configured rather than Discourse’s shipped defaults.

Category access is granted to groups, and Discourse’s own guide to groups and category permissions states that a new category defaults to giving the Everyone group See, Reply and Create access, which includes anonymous visitors until that default is changed. Admins hold that full access to every category automatically, but moderators do not: a moderator only reaches a category that explicitly lists the staff or moderators group in its permission rule. We test what every category on your site actually grants, and whether a category meant to stay private still inherited the open default.

A Discourse API key can be scoped Global, Read-only or Granular, and single sign-on through DiscourseConnect authenticates a login with a payload your identity provider signs using HMAC-SHA256, rather than Discourse storing a password for that account. Installing a plugin on a self-hosted site means editing the container configuration and rebuilding it from the command line, the same server-level access as everything else running on that box. We test what a scoped API key, a DiscourseConnect payload and an installed plugin can each do once misused, not only what the interface in front of them shows.

SCOPE

What we pen test on a Discourse site

DC-01

Trust Levels 0 to 4 and What Each One Unlocks

Every Discourse account sits at trust level 0 to 4, and Discourse’s own trust level guide sets out exactly what changes at each threshold: trust level 0 cannot send a private message or flag a post, trust level 1 removes those restrictions and adds wiki editing, and trust level 4 is granted only by manual staff promotion and can edit, pin or merge any topic. We test what a real account actually holds at each level on your site.

DC-02

Promotion Thresholds and Trust Level Overrides

Trust levels 1 to 3 are earned automatically against measurable thresholds, such as topics entered, posts read, likes given and received, and days visited, and trust level 3 is the only one you can lose again if your activity drops for 100 days. We test whether your site’s thresholds have been lowered from the defaults, and whether a group membership is quietly restoring a trust level a moderator demoted.

DC-03

Category Defaults: the Everyone Group’s See, Reply and Create Access

A new Discourse category defaults to giving the built-in Everyone group See, Reply and Create access, which includes anonymous visitors until that default is changed. We test every category your site has created against what it was actually meant to expose, including categories nobody remembers configuring.

DC-04

Admin and Moderator Access Compared

Admins hold full Create, Reply and See access to every category automatically, but moderators do not: a moderator only reaches a category that explicitly lists the staff or moderators group in its permissions. We test which categories a moderator account can actually open, and whether a category meant to stay staff-only still inherited an open default.

DC-05

Group Membership and Category Permission Overrides

Category access in Discourse is granted to groups, not individual users, so a category’s real exposure depends on which groups a permission rule lists and which accounts sit inside each group at the time of testing. We map your group structure against every category’s permission rule to find an account with more, or less, reach than its role implies.

DC-06

Private Messages and Group Messaging Limits

Sending a private message requires trust level 1 by default, and trust level 2 adds the ability to invite an outside user into a group private message, widening who can end up inside a conversation. We test who can start, join or be added to a private message on your site, and whether a group setting lets an unintended account read a thread.

DC-07

Scoped API Keys: Global, Read-Only and Granular Access

A Discourse API key can be scoped Global, Read-only or Granular, and a granular key can be limited to specific endpoints and request methods rather than acting with everything the issuing user could otherwise do. We test what an API key scoped to a lower-privileged account can still reach, and whether a granular key’s path restriction actually holds under a modified request.

DC-08

DiscourseConnect Single Sign-On Payload Handling

DiscourseConnect authenticates a login through a payload your identity provider signs with a shared secret using HMAC-SHA256, rather than Discourse storing its own password for that account, and the same payload can set fields such as admin, moderator and external_id. We test how that payload is validated, generated and rejected, including what happens if a signature, nonce or privileged field is manipulated.

DC-09

Self-Hosted Plugin Installation and Server-Level Trust

Installing a plugin on a self-hosted Discourse site means adding its repository to the container configuration and rebuilding the container from the command line, the same server-level access as everything else running on that box. We review what an installed plugin can reach once it is running, and whether an old or abandoned plugin was actually removed from the configuration rather than just disabled.

DC-10

Content Security Policy and Script-Source Restrictions

Discourse ships with Content Security Policy switched on by default, and since version 3.3.0 it uses a strict-dynamic policy built around a per-request nonce rather than a static allowlist of trusted script sources. We test whether a custom theme, component or embedded script has weakened that policy, and whether the frame-ancestors and script-src directives still block what they are meant to.

OUR PROCESS

Discourse Penetration Testing: From Scope to Attestation

01

Scope and Access

We agree the categories, trust level accounts, plugins and API keys in scope, including a DiscourseConnect test account if single sign-on is enabled, before testing begins.

02

Trust Level and Permission Mapping

We map every trust level, group and category permission rule on your site against what each account is actually meant to reach before manual testing starts.

03

Manual Testing

A CREST-certified tester manually exploits weaknesses across trust levels, category permissions, plugins, API keys and DiscourseConnect, chaining findings where they compound.

04

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 Discourse 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 Discourse 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,060–£3,030
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
£4,840–£7,370
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 Discourse 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 Discourse site?

We need at least one account at each trust level tier you use, including a moderator and an admin account, so we can test what each level and role can actually reach. If DiscourseConnect single sign-on is enabled, we also need a test account through that identity provider, and a scoped API key if your site exposes one to an integration.

Will testing touch our live data?

We test whichever environment you give us access to. If that is your production Discourse site, we agree exclusions upfront, such as bulk deletes, mass private messages and outbound email, and we do not run destructive tests against real member data without that agreement in writing.

How long does a Discourse penetration test take?

A single Discourse site sits in our 2-day single-site scope, with a report typically landing around 5 working days after kickoff. A site with a large number of categories, custom groups, plugins or an API used by several integrations moves into a wider scope with more testing days.

Do you test self-hosted Discourse as well as Discourse’s own hosting plans?

Yes. We test Discourse running on your own server or container the same way as a site on Discourse’s managed hosting plans, since the trust level, category and permission testing is the same either way. A self-hosted site also gets a server-configuration check around how the container and any installed plugins are deployed.

What is out of scope for a single-site Discourse test?

The underlying server, network or cloud infrastructure your site runs on is out of scope for this test and covered by our cloud penetration testing service instead. The Discourse core codebase itself is also out of scope, since that is the Discourse project’s own responsibility to secure.

Do you need our source code or admin access?

No. Testing is black-box by default against the accounts and access you provide. A grey-box option, where we review category permission rules, group membership and installed plugin configuration alongside testing, is available if you want faster or deeper coverage of specific findings.

Does Discourse have a customer penetration-testing policy we need to follow?

Discourse is open source software you install and run yourself, so there is no hosted multi-tenant service standing between your account and the code, unlike a SaaS platform. The Discourse project runs a public bug bounty programme through HackerOne for vulnerabilities in the Discourse software itself, which covers the codebase rather than your configuration, and we confirm your hosting provider’s current terms during scoping if your site sits on shared, managed or Discourse’s own hosted infrastructure.

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 Discourse site

Discourse grants real access automatically once a member crosses a trust level threshold you configured. We test your trust levels, category permissions, plugins and API keys against what your community should allow. CREST-certified testers, fixed price from £2,060 for a 2-day single-site scope, quoted within 24 hours.