Path traversal in post media lets any registered user read server files
Summary
| CVE | CVE-2026-115932 |
|---|---|
| State | PUBLISHED |
| Assigner | postiz |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-10-24 13:16:37 UTC |
| Updated | 2026-10-24 13:16:37 UTC |
| Description | When a post is published, Postiz treats a media path that is not a web address as a file on the server's disk, but it does not check that the file lies inside the upload directory. A registered user can store a crafted media path with a post, get it past the checks that normally restrict it, and have the publishing worker read an arbitrary file and send it as an attachment to a Discord server the user controls. The same unconfined reads can be reached through two further routes. One tells the caller whether a file exists and can exhaust the backend's memory, the other delivers the file the same way as the main route. Self-registration is open by default, so the attacker needs no existing account. |
Risk And Classification
Primary CVSS: v3.1 9.6 CRITICAL from 4cdc9741-f887-419a-a2fd-acbbd2729276
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
Problem Types: CWE-22 | CWE-74 | CWE-22 CWE-22 | CWE-74 CWE-74
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 3.1 | 4cdc9741-f887-419a-a2fd-acbbd2729276 | Secondary | 9.6 | CRITICAL | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N |
| 3.1 | CNA | CVSS | 9.6 | CRITICAL | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N |
CVSS v3.1 Breakdown
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | GitroomHQ | Postiz-app | affected 2.23.0 2.25.3 semver | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| github.com/gitroomhq/postiz-app | 4cdc9741-f887-419a-a2fd-acbbd2729276 | github.com | |
| github.com/gitroomhq/postiz-app/releases/tag/v2.25.3 | 4cdc9741-f887-419a-a2fd-acbbd2729276 | github.com | |
| github.com/gitroomhq/postiz-app/commit/12db9bd2f428b628a62809669c3d76297... | 4cdc9741-f887-419a-a2fd-acbbd2729276 | github.com | |
| gadvisory.org/advisories/PSA-2026-E9AHFV | 4cdc9741-f887-419a-a2fd-acbbd2729276 | gadvisory.org | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Anthropic, PBC (en)
CNA: Enno Gelhaus (en)
CNA: Nevo David (en)
Additional Advisory Data
| Source | Time | Event |
|---|---|---|
| CNA | 2026-10-23T17:45:00.000Z | Anthropic has disclosed a thorough report of this vulnerability including a working PoC to Postiz |
| CNA | 2026-10-23T18:00:00.000Z | Postiz has reproduced the vulnerability and is working on a fix |
Workarounds
CNA: 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.
CNA: If you do not need the Discord provider, leave its client id, client secret and bot token unset. This removes the main route only; the other routes remain.
Exploits
CNA: Exploitation was demonstrated end to end against unmodified builds of the backend and the orchestrator at commit 3a7d28b7ad96, using only a self-registered account: a file outside the upload directory arrived byte for byte as an attachment in the attacker's Discord channel. The validation-time route and the stored media route were also exercised separately against the same builds.