Description
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.
Published: 2026-09-22
Score: 9.1 Critical
EPSS: n/a
KEV: No
Impact: Credential Compromise
Action: Immediate Patch
AI Analysis

Impact

Postiz’s security‑sensitive identifiers—including OAuth access tokens, client secrets, organization API keys, and PKCE verifiers—are generated using JavaScript’s Math.random() instead of a cryptographically secure source. Because the same deterministic PRNG state governs all token families, an attacker who obtains a sufficient sequence of newly issued credentials can reconstruct the PRNG state and deterministically generate any past or future values. This flaw equates to an improper random number generation weakness (CWE‑330, CWE‑338, CWE‑341) and allows unauthorized parties to compromise authentication credentials across multiple users and organizations.

Affected Systems

GitroomHQ’s Postiz application (postiz-app) in any release that used Math.random() for credential generation. No fixed release has been published at the time of writing. The vulnerability applies to OAuth dynamic client registration, OAuth access token issuance, authorization code issuance, client secret generation, organization API keys, and PKCE verifier generation.

Risk and Exploitability

The CVSS base score of 9.1 indicates a critical severity. EPSS is not available, so the exact likelihood of exploitation is unknown, but the high score and broad impact suggest a potentially high exploitation probability. The vulnerability is not listed in the CISA KEV catalog yet, but its critical nature warrants urgent attention. The likely attack path involves an unauthenticated request to the OAuth dynamic client registration endpoint; by replaying and observing the generated credentials, an attacker can reconstruct the underlying PRNG state and predict any past or future tokens without needing privileged access.

Generated by OpenCVE AI on September 22, 2026 at 18:29 UTC.

Remediation

Vendor Solution

Run a Postiz release in which security-sensitive identifiers are generated from a cryptographically secure random source rather than from Math.random(). No fixed release is available at the time of writing; this advisory will record the fixed version once one is published.


Vendor Workaround

Blocking or requiring authentication on the OAuth dynamic client registration endpoint at a reverse proxy, gateway or WAF removes the anonymous bulk-sampling surface, which is the part of this issue reachable without an account. It does not make the generated values unpredictable, and it does not close the surfaces available to an authenticated user, so it narrows exposure rather than resolving it. Deployments that do not use OAuth or MCP client integrations can apply this with no loss of function.


OpenCVE Recommended Actions

  • When a Postiz release that replaces Math.random() with a cryptographically secure random source is available, upgrade to that version and replace all existing credentials. Until such a release is released, no fixed version exists.
  • Treat every credential issued by an affected Postiz version—including organization API keys, OAuth client secrets, access tokens, and authorization codes—as compromised and promptly replace them. This ensures no legacy token can be reused by an attacker.
  • If a fix is not immediately available, restrict the OAuth dynamic client registration endpoint to authenticated traffic at the reverse proxy, gateway or WAF level to eliminate the anonymous bulk‑sampling surface.

Generated by OpenCVE AI on September 22, 2026 at 18:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 22 Sep 2026 18:30:00 +0000

Type Values Removed Values Added
First Time appeared Gitroomhq
Gitroomhq postiz-app
Vendors & Products Gitroomhq
Gitroomhq postiz-app

Tue, 22 Sep 2026 16:30:00 +0000

Type Values Removed Values Added
Description 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.
Title Unauthenticated recovery of the Math.random() state behind OAuth tokens, authorization codes, client secrets and organization API keys
Weaknesses CWE-330
CWE-338
CWE-341
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'}


Subscriptions

Gitroomhq Postiz-app
cve-icon MITRE

Status: PUBLISHED

Assigner: postiz

Published:

Updated: 2026-09-22T18:11:17.502Z

Reserved: 2026-09-21T17:11:13.201Z

Link: CVE-2026-94456

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-22T17:17:31.670

Modified: 2026-09-22T17:17:31.670

Link: CVE-2026-94456

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-22T18:30:18Z

Weaknesses
  • CWE-330

    Use of Insufficiently Random Values

  • CWE-338

    Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)

  • CWE-341

    Predictable from Observable State