Description
An HTTP endpoint intended for provisioning enterprise and reseller organisations is reachable without any session. The authentication middleware is bound only to an explicit list of controllers, and the enterprise controller is not on that list, so no authentication runs for these routes.

The endpoint's only check is that the request body carries a token bearing a valid signature from the instance secret. It does not check what that token was issued for. Login tokens are signed with the same secret and carry no purpose, audience or expiry claim, so an ordinary user's own session token satisfies the check.

Presented with such a token, the endpoint creates a new organisation holding the highest subscription tier, flagged as lifetime and with a channel allowance far above any sold plan, creates an organisation-owner account alongside it, and returns the new organisation's API key in the response body. That key is immediately valid against the public API.
Published: 2026-09-22
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: Unauthorized organization creation and API key disclosure
Action: Update Software
AI Analysis

Impact

An HTTP endpoint for enterprise provisioning is reachable without authentication. Because only a limited list of controllers runs the authentication middleware, the /enterprise/create-user route bypasses this check. The request only requires a token signed with the instance secret, and the same secret is used to sign login session tokens that carry no audience or expiration claim. Consequently, anyone who has a valid session token can POST to the endpoint and cause a new organization to be created with the highest subscription tier, lifetime status and a channel allowance far beyond any sold plan. The endpoint also creates an organization‑owner account and returns the new organization’s API key, which is immediately valid against the public API. This provides an attacker with full control over a newly minted enterprise organization and unrestricted access to the API.

Affected Systems

GitroomHQ’s Postiz‑app handles the vulnerable /enterprise/create-user endpoint. The flaw appears in all versions prior to the v2.24.0 release that contains the authentication fix. Any instance running an older version of the application is affected, regardless of the deployment environment.

Risk and Exploitability

The CVSS score of 7.1 indicates high severity. With no authentication required, an attacker only needs a valid session token from an ordinary user, which can be obtained by social engineering or credential reuse. The endpoint immediately yields a new organization and a usable API key, giving the attacker unrestricted API access. Because the exploit does not rely on local privileges or further access, the risk for organizations is significant, even though the EPSS score is not available and the vulnerability is not yet listed in the CISA KEV catalog.

Generated by OpenCVE AI on September 22, 2026 at 17:53 UTC.

Remediation

Vendor Workaround

Block POST /enterprise/create-user, and preferably all of /enterprise/*, at your reverse proxy, ingress or WAF. If you do not use Postiz's enterprise or reseller provisioning integration, nothing legitimate calls these routes, so blocking them has no user-visible effect.


OpenCVE Recommended Actions

  • Update Postiz‑app to v2.24.0 or later to enable authentication on the enterprise routes.
  • If an immediate update is not possible, block POST /enterprise/create-user, or all /enterprise/* requests, at the reverse proxy, ingress or WAF.
  • As an additional temporary measure, set DISABLE_REGISTRATION=true to prevent self‑registration and reduce the chance of an attacker obtaining a session token on the instance.

Generated by OpenCVE AI on September 22, 2026 at 17:53 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 An HTTP endpoint intended for provisioning enterprise and reseller organisations is reachable without any session. The authentication middleware is bound only to an explicit list of controllers, and the enterprise controller is not on that list, so no authentication runs for these routes. The endpoint's only check is that the request body carries a token bearing a valid signature from the instance secret. It does not check what that token was issued for. Login tokens are signed with the same secret and carry no purpose, audience or expiry claim, so an ordinary user's own session token satisfies the check. Presented with such a token, the endpoint creates a new organisation holding the highest subscription tier, flagged as lifetime and with a channel allowance far above any sold plan, creates an organisation-owner account alongside it, and returns the new organisation's API key in the response body. That key is immediately valid against the public API.
Title Unauthenticated /enterprise/create-user mints lifetime top-tier organizations and discloses their API key
Weaknesses CWE-1390
CWE-306
CWE-345
CWE-770
References
Metrics cvssV3_1

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


Subscriptions

Gitroomhq Postiz-app
cve-icon MITRE

Status: PUBLISHED

Assigner: postiz

Published:

Updated: 2026-09-22T18:14:13.947Z

Reserved: 2026-09-21T17:10:50.156Z

Link: CVE-2026-94455

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-94455

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-22T18:15:15Z

Weaknesses
  • CWE-1390

    Weak Authentication

  • CWE-306

    Missing Authentication for Critical Function

  • CWE-345

    Insufficient Verification of Data Authenticity

  • CWE-770

    Allocation of Resources Without Limits or Throttling