Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach unauthenticated OAuth registration endpoint
-
DeliveryRepeatedly request client credentials
-
ExploitReconstruct xorshift128+ PRNG state
-
ExecutionDerive other users' tokens and API keys
-
ImpactImpersonate accounts across organizations
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic PRNG selection
|
| Exploitation Conditions | Exploitation requires that Postiz's unauthenticated OAuth dynamic client registration endpoint be enabled and network-reachable, since that endpoint is what returns freshly Math.random()-generated client credentials to the attacker. The core weakness is the shared credential helper using Math.random() (V8's deterministic xorshift128+) rather than a CSPRNG for OAuth access tokens, authorization codes, client secrets, org API keys, and PKCE verifiers. Practical exploitation is LIMITED by the need to capture enough consecutive, uncontaminated PRNG outputs to solve for internal state - concurrent credential generation from other users interleaves draws and degrades recoverability - and by deployment on a fixed version prior to v2.24.0. No user interaction or authentication is required to reach the leaking endpoint. |
| Impact | This is a genuinely high-priority weakness, not a CVSS-inflated one. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:H/A:N, base 9.1) reflects a real, network-reachable, unauthenticated credential-compromise path: predictable Math.random()-derived OAuth tokens, client secrets, org API keys, and PKCE verifiers, combined with an unauthenticated OAuth dynamic client registration endpoint that leaks enough consecutive V8 xorshift128+ output to reconstruct PRNG state. No EPSS score, KEV listing, POC, or SSVC decision data was provided in the input, so exploitation-likelihood signals are absent - this rests on the CVSS vector, the description, and a confirmed vendor patch. I assess Attack Complexity as higher than the vendor's AC:L: reconstructing xorshift128+ state requires harvesting consecutive, uncontaminated PRNG outputs (concurrent requests from other users interleave draws and pollute the sequence) plus a lattice/solver step, which is a well-documented but non-trivial technique. Net: technically severe and remotely reachable, but real-world exploitation demands specific state-recovery effort rather than a one-shot request. No conflicting signals in the raw data, but note the absence of any exploitation-probability evidence. |
| Exploit ScenarioDerived | An unauthenticated attacker repeatedly calls Postiz's OAuth dynamic client registration endpoint, collecting the freshly generated client credentials whose bytes come directly from Math.random(). After gathering enough consecutive outputs, they reconstruct the V8 xorshift128+ internal state and deterministically compute PRNG values produced before and after their samples - forging or predicting OAuth access tokens, authorization codes, and org API keys belonging to other tenants. No public exploit was identified at time of analysis, though the underlying V8 PRNG-recovery technique is publicly known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Predictable, non-cryptographic credential generation in Postiz (gitroomhq/postiz-app, all versions prior to v2.24.0) allows unauthenticated remote attackers to reconstruct the V8 xorshift128+ PRNG state and derive OAuth access tokens, authorization codes, client secrets, organization API keys and PKCE verifiers issued to other users and organizations. Practical exploitation is limited by the requirement that the unauthenticated OAuth dynamic client registration endpoint be enabled and network-reachable, since that endpoint is what returns freshly generated client credentials supplying the consecutive PRNG output needed to solve for internal state; concurrent credential generation by other users interleaves draws and degrades recoverability, which is why the assessed vector carries high attack complexity. No public exploit code was identified at time of analysis and the issue is not in CISA KEV, but successful exploitation yields high confidentiality and integrity impact across tenants, and a vendor patch is available in v2.24.0 (advisory PSA-2026-TD98KY).
RemediationAI
Vendor-released patch: v2.24.0 - upgrade all Postiz instances to that release (or later) immediately, since it replaces the Math.random()-based helper; the upstream fix commit is 9259cf2429e8cc0c88414e88d5e6c783d7ffba63 and the release notes at https://github.com/gitroomhq/postiz-app/releases/tag/v2.24.0 confirm both PSA-2026-TD98KY and PSA-2026-P8W1J0 are addressed, with new Prisma models, environment variables and Temporal workflow versions requiring the documented upgrade steps. Because the PRNG state is deterministic and attacker-recoverable, patching alone is insufficient: rotate every credential that was generated by the vulnerable helper - OAuth access tokens, authorization codes, client secrets, organization API keys and PKCE verifiers - as a post-upgrade containment step; the trade-off is forced re-authentication for users and reconfiguration of any integrations holding org API keys. Until the upgrade is complete, disable or remove network exposure of the OAuth dynamic client registration endpoint if it is not operationally required (trade-off: breaks dynamic client onboarding for third-party OAuth clients), or restrict reachability of that endpoint to trusted IP ranges via reverse-proxy or firewall rules; monitoring logs for repeated client-registration requests from a single source is a useful detection heuristic but does not prevent state recovery, and advisory detail is available at https://gadvisory.org/advisories/PSA-2026-TD98KY.
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
The root cause is CWE-338 (Use of a Cryptographically Weak Pseudo-Random Number Generator). Postiz's credential helper calls JavaScript's Math.random(), which in V8 is implemented as the deterministic xorshift128+ algorithm seeded from a limited entropy source and never intended for security-sensitive values. A single shared helper generates OAuth access tokens, authorization codes, client secrets, organization API keys and PKCE code verifiers, so every one of these credential types depends on the same internal PRNG state. Because xorshift128+ is a linear-state generator with a 128-bit state, an attacker who observes enough consecutive, uncontaminated outputs can solve for that state and then compute both past and future outputs without any cryptographic key - turning token guessing into deterministic derivation. The exposure point is the unauthenticated OAuth dynamic client registration endpoint, which mints and returns new client credentials on demand and thereby hands the attacker contiguous PRNG samples; if credential generation from other users interleaves with the attacker's requests, the sample stream is fragmented and state recovery becomes substantially harder, hence the assessed high attack complexity. The CPE cpe:2.3:a:gitroomhq:postiz-app:*:*:*:*:*:*:*:* covers deployed Postiz instances below the v2.24.0 fix, which is described in the release notes as addressing this advisory together with PSA-2026-P8W1J0.
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:N/UI:N/S:U/C:H/I:H/A:N
Network, unauthenticated (PR:N) via the open registration endpoint, but AC:H because recovering xorshift128+ state needs consecutive uncontaminated outputs plus a solver; credential theft and forgery give C:H/I:H, no availability impact.
Primary rating from Vendor (postiz).
CVSS VectorVendor: postiz
DescriptionCVE.org
Postiz generates security-sensitive credentials using Math.random() instead of a cryptographically secure source. The same helper is used for OAuth access tokens, authorization codes, client secrets, organization API keys, and PKCE verifiers, meaning these credentials depend entirely on V8’s deterministic xorshift128+ PRNG state.
An unauthenticated OAuth dynamic client registration endpoint exposes freshly generated client credentials, giving attackers enough consecutive PRNG output to reconstruct that internal state. Once recovered, they can deterministically derive past and future values produced by the same generator, potentially compromising credentials belonging to other users and organizations.
Executive ViewAI
Postiz (gitroomhq/postiz-app) versions prior to v2.24.0 contain a critical credential-generation flaw that could expose OAuth tokens, client secrets, and API keys across tenants, undermining the platform's multi-tenant isolation and trust model. Because successful exploitation yields high confidentiality and integrity impact, security leadership should prioritize remediation and verify that the OAuth dynamic client registration endpoint is not unnecessarily exposed. No public exploit identified at time of analysis, but the severity and cross-tenant implications warrant immediate action.
Apply vendor patch.
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 allPrivilege escalation to SUPERADMIN in Postiz (gitroomhq/postiz-app) versions prior to 2.21.8 allows any authenticated us
Arbitrary 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.
Missing authentication on Postiz's enterprise/reseller organisation provisioning endpoint lets an authenticated low-priv
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
EUVD-2026-84543
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB