CVE-2026-115931 PUBLISHED

Arbitrary file read and backend crash through unrestricted provider method calls

Assigner: postiz
Reserved: 23.10.2026 Published: 23.10.2026 Updated: 24.10.2026

Postiz lets a signed-in user ask the backend to run a function on one of their connected channels. The backend did not restrict which functions can be requested, so a user could call internal helper functions that were never meant to be reachable from the web interface.

One of those helpers reads a file from the server's disk. A user who connects a channel whose stored token is a file path can have the backend return the contents of any file it can read, including its environment, which holds the secret used to sign login sessions, the database address and the credentials of connected services. Another helper makes the backend process exit with a single request. Self-registration is open by default, so no existing account and no action by another user is needed.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS Score: 9.9

Product Status

Vendor GitroomHQ
Product postiz-app
Versions Default: unaffected
  • affected from 2.23.0 to 2.25.2 (excl.)

Affected Configurations

The image built from the project's Dockerfile.dev runs the process as root, so every file root can read is exposed. The process's own environment is readable regardless of the user it runs as.

Exploits

Exploitation was demonstrated end to end against an unmodified build of Postiz at commit 3a7d28b7ad96, using only a self-registered account: the contents of a file placed outside the application's directories and the exact JWT secret the backend was started with were both returned in full. Terminating the backend with one request was demonstrated separately.

Workarounds

Set DISABLE_REGISTRATION=true. The attacker needs an ordinary account, so closing self-registration limits exposure to people who already hold one. This reduces reach, it does not close the issue.

Credits

  • Anthropic, PBC finder
  • Enno Gelhaus coordinator
  • Nevo David remediation developer

References

Problem Types

  • CWE-470 CWE
  • CWE-73 CWE

Impacts

  • Any registered user can read any file the backend process can read, with the result returned as bytes so binary files work.
  • The backend's environment is readable, which exposes the JWT signing secret, the database and Redis connection strings and the credentials and API keys of connected providers when they are passed as environment variables.
  • With the JWT signing secret an attacker can sign a session for any user, including a user in another organization or an instance super administrator, and can decrypt data the application stores encrypted with the same secret.
  • A single request ends the backend process, and it can be repeated after every restart.
  • Other provider functions become callable by any member of an organization that owns a channel, some of which return access tokens for the connected account that other routes keep server side.