Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or use existing Postiz account
-
DeliveryCraft base64 JSON with isSuperAdmin true
-
ExploitPOST to Skool integration callback
-
ExecutionReceive forged SUPERADMIN session JWT
-
PersistReplace own session token with forgery
-
ImpactAccess arbitrary organizations and post as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Data mutability checks in auth
|
| Exploitation Conditions | Exploitation requires (1) an authenticated session on the target Postiz instance - any low-privileged user account, including freshly self-registered ones where registration is open - and (2) network reachability to the Skool integration callback under the no-auth integrations controller. The attacker must base64-encode a JSON object shaped like the User session model (notably containing an id and isSuperAdmin: true) and submit it in the code field of the callback request; no Skool OAuth flow needs to be completed legitimately. There is no required user interaction from the victim, no platform-specific dependency, and no need for the Skool integration to be configured by the operator - the callback route is reachable in default deployments of any postiz-app build prior to 2.21.8. |
| Impact | All available signals converge on a high priority. The NVD CVSS 3.1 score of 9.9 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) accurately reflects that any low-privileged authenticated user - which on most Postiz instances means any self-registered account - can pivot to full SUPERADMIN with no user interaction and a scope change across all organizations on the instance. EPSS and CISA KEV data were not provided in the input, so widespread exploitation cannot be confirmed; however, the patch commit (23696d2) is public and clearly highlights the vulnerable two-line construct, making weaponization straightforward for anyone reading the diff. There is no conflict between the description and the CVSS vector: PR:L is appropriate because an attacker must hold a normal authenticated session to invoke the Skool callback, and S:C is justified because the forged session crosses organizational boundaries. The main caveat is that real-world impact depends on whether the Postiz instance is internet-exposed and accepts self-service registration; closed, single-tenant deployments still face an insider-threat path but the population of capable attackers is smaller. |
| Exploit ScenarioDerived | An attacker registers a normal account on a target Postiz instance, then issues a request to the Skool integration callback with a base64-encoded JSON body specifying id of a target admin user and isSuperAdmin: true. The server signs that payload into a valid session JWT using JWT_SECRET, the attacker replaces their session cookie/header with it, and the auth middleware accepts the forged identity, granting full access to every organization and the ability to post under any connected social channel. No special tooling is required - a single curl invocation against the callback endpoint is sufficient, and the patch diff itself reveals the exact vulnerable parameter. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 16, 2026
Privilege escalation to SUPERADMIN in Postiz (gitroomhq/postiz-app) versions prior to 2.21.8 allows any authenticated user to forge session JWTs and impersonate arbitrary organizations. The Skool integration callback signed an attacker-controlled JSON blob into a session-shape JWT using the application's JWT_SECRET, and the auth middleware blindly trusted every claim without re-resolving the user from the database. No public exploit identified at time of analysis, but the fix commit is public and the root cause is trivially reproducible from the patch diff.
RemediationAI
The primary fix is to upgrade to Vendor-released patch: Postiz 2.21.8 or later, available at http://github.com/gitroomhq/postiz-app/releases/tag/v2.21.8, which both replaces the dangerous AuthService.signJWT(JSON.parse(...)) call in the Skool callback with AuthService.fixedEncryption and forces AuthMiddleware to re-resolve the user from the database via _userService.getUserById(payload.id) instead of trusting JWT claims (commit 23696d2973510ae1f3f48bfa41a6bfbbf9827b05). If immediate upgrade is impossible, operators should block the Skool integration callback route at the reverse proxy or WAF layer to neutralize the JWT-minting primitive (trade-off: Skool integration stops working for legitimate users), restrict instance registration to invited users only to shrink the attacker population, and rotate JWT_SECRET after upgrading to invalidate any forged tokens that may already be in circulation (trade-off: forces all users to re-authenticate). Reviewing audit logs for unexpected SUPERADMIN actions and unfamiliar social posts attributed to legitimate accounts is recommended before patching, since the exploit leaves few obvious traces beyond the org switch itself.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Postiz is an open-source AI social media scheduling platform built on NestJS (gitroomhq/postiz-app) that uses signed JWTs to maintain user sessions across its backend API. The vulnerable code path is in apps/backend/src/api/routes/no.auth.integrations.controller.ts, where the Skool integration callback took a base64-encoded body.code field, JSON-parsed it, and passed the resulting object directly into AuthService.signJWT - effectively letting the caller dictate the JWT payload. Compounding this, AuthMiddleware (apps/backend/src/services/auth/auth.middleware.ts) only verified the JWT signature and then trusted the embedded id, isSuperAdmin, and activated claims wholesale instead of loading the user record from the database. This pattern maps to CWE-302 (Authentication Bypass by Assumed-Immutable Data): the server treats client-supplied, signature-protected fields as authoritative identity assertions.
Know when Postiz App gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network-reachable callback (AV:N), trivial forgery from patch diff (AC:L), any authenticated user suffices (PR:L), no victim interaction (UI:N); forged SUPERADMIN crosses org boundaries (S:C) with full CIA impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Postiz is an AI social media scheduling tool. In versions prior to 2.21.8, the Skool integration callback signed an attacker-controlled JSON blob into a session-shape JWT using the application's JWT_SECRET, and the auth middleware trusted every claim in that JWT without re-resolving the user from the database. Any authenticated Postiz user could forge a SUPERADMIN session and impersonate arbitrary organizations. This allowed Full Access to the following: all parts of Postiz, including users registered to the specific instance and the ability to post in the name of the victim's social media channels added to that Postiz instance. This issue has been fixed in version 2.21.8.
Executive ViewAI
Postiz versions prior to 2.21.8 allow any authenticated user to escalate privileges to SUPERADMIN and impersonate arbitrary organizations through forged session tokens in the Skool integration. This breaks the application's entire access control model, enabling attackers with any valid account to gain unrestricted administrative access and operate as other organizations. Organizations running affected versions face immediate risk of data breach, unauthorized configuration changes, and loss of audit trail integrity.
Apply vendor patch to Postiz 2.21.8 or later. Until patched, disable Skool integration callback functionality to eliminate the JWT forgery vector while maintaining other application features.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Postiz App
View allFile upload validation bypass in Postiz social media scheduler (versions before 2.21.6) allows authenticated users to up
Postiz (gitroomhq/postiz-app) before v2.25.1 allows any signed-in user to invoke arbitrary internal integration methods
Improper token-purpose validation in Postiz (gitroomhq/postiz-app) through v2.25.2 allows any authenticated user holding
Arbitrary code execution and privileged token theft affects Postiz (gitroomhq/postiz-app) prior to commit da44801 throug
Postiz instances older than v2.25.3 that store media on local disk let a registered user have the publishing worker read
Arbitrary file read in Postiz (gitroomhq/postiz-app before 2.22.1) lets an unauthenticated remote attacker retrieve any
Predictable, non-cryptographic credential generation in Postiz (gitroomhq/postiz-app, all versions prior to v2.24.0) all
Stored cross-site scripting in Postiz (gitroomhq/postiz-app) versions 2.21.6 through 2.21.6 lets any authenticated user
Server-side request forgery in Postiz AI social media scheduling tool (versions < 2.21.3) allows unauthenticated remote
Server-side request forgery (SSRF) in Postiz social media scheduling tool versions prior to 2.21.3 allows authenticated
Server-side request forgery in Postiz (gitroomhq postiz-app) versions prior to 2.21.5 allows unauthenticated remote atta
Business-logic authentication bypass in Postiz self-hosted AI social media scheduler (gitroomhq/postiz-app) before 2.21.
EUVD-2026-37505
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB