---
id: CVE-2026-115931
title: >-
  Arbitrary file read and backend crash through unrestricted provider method
  calls
summary: >-
  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 …
severity: critical
cvss: 9.9
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-470
  - CWE-73
vendor: GitroomHQ
product: postiz-app
affected:
  - postiz-app >= 2.23.0 < 2.25.2
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T23:07:14.650Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-115931'
references:
  - url: 'https://github.com/gitroomhq/postiz-app'
    label: Postiz
  - url: 'https://github.com/gitroomhq/postiz-app/releases/tag/v2.25.1'
    label: v2.25.1
  - url: >-
      https://github.com/gitroomhq/postiz-app/commit/9383f5be4d310c346e33a3748a9a7ded64c96fed
    label: 9383f5b
  - url: 'https://gadvisory.org/advisories/PSA-2026-JNXM56'
    label: GAdvisory
tags:
  - cve.org
ingestedAt: '2026-10-24T00:46:53.675Z'
---

## Overview

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.

## Affected

- `postiz-app >= 2.23.0 < 2.25.2`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

### 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.
