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
3DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
More in Postiz App
View allArbitrary code execution and privileged token theft affects Postiz (gitroomhq/postiz-app) prior to commit da44801 throug
Arbitrary file read in Postiz (gitroomhq/postiz-app before 2.22.1) lets an unauthenticated remote attacker retrieve any
Stored cross-site scripting in Postiz (gitroomhq/postiz-app) versions 2.21.6 through 2.21.6 lets any authenticated user
File upload validation bypass in Postiz social media scheduler (versions before 2.21.6) allows authenticated users to up
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.
DNS rebinding exploits a TOCTOU flaw in Postiz v2.16.6-2.21.6 to bypass all SSRF protections added in v2.21.4-v2.21.6, a
Server-side request forgery (SSRF) in Postiz prior to version 2.21.4 allows authenticated users to create webhooks point
Unauthenticated exploitation of Postiz's `/public/modify-subscription` endpoint allowed any caller in possession of a va
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37505