Date: 2026-06-23 Context: After GitLab CE (full-surface) + Mattermost CORE both swept clean at fuzzer-scale, operator directive = go DOWN the fame ladder to find a self-hostable multi-tenant app on a PAYING program that is NOT a top-audited blue-chip. CASH-GATE FIRST before spending compute.
| Target | Pays? | Self-host test | Verdict |
|---|---|---|---|
| Rocket.Chat | NO - VDP only (WhiteHat HoF) | yes (own copy) | credit-only |
| Chatwoot | NO formal program (discretionary) | yes (required) | credit-only |
| Zammad | no program found | - | none |
| Ghost | no dedicated paid program found | - | none |
| Sentry | PARTIAL (Cookie Bounty $100 + private/invite main); self-host scope unclear | unclear | weak |
| Discourse | YES - H1 bounty table; source explicitly in-scope (100% OSS) | own instance safe (not their infra) | PAYS but mature |
The intersection {fresh/less-audited} AND {pays cash} AND {self-hostable} is NEARLY EMPTY: - The genuinely-fresh self-hostable apps run VDP / hall-of-fame / discretionary-thanks, NOT cash. - The ones that pay cash are the MATURE blue-chips (GitLab, Mattermost, Discourse, Sentry) - same profile that already sweeps clean under a full-surface differential. - So cash-gating FORCES you UP the audit ladder, which is exactly where IDOR is already swept. This is the IDOR analogue of the audited-web3-frontier saturation: the paying frontier is mined.
Readout sent to operator via bz-tg (A: run Discourse anyway / B: re-aim payer vein / C: pivot class). No compute spent on Discourse pending the call. FP-allowlist (differ.triage) shipped + validated. NO auto-submit. Engine + adapter set (GitLab full-surface, Mattermost core) compound regardless.