/

CVE-2026-115932

Severity:

CRITICAL RISK

(9.6)

Path Traversal (CWE-22) in Postiz Media Publishing

CVE-2026-115932

Deferred

Vulnerability type

Category:

Path Traversal

CWE:

CWE-22, CWE-74

Impact:

Arbitrary File Disclosure and Resource Exhaustion

Severity:

CRITICAL RISK

(9.6)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A path traversal vulnerability in Postiz allows a user-controlled media path to reference files outside the application's intended upload directory. When the post is published, the worker may read and disclose arbitrary server files to a Discord destination controlled by the attacker; related routes may also reveal file existence or cause memory exhaustion.

A path traversal vulnerability in Postiz allows a user-controlled media path to reference files outside the application's intended upload directory. When the post is published, the worker may read and disclose arbitrary server files to a Discord destination controlled by the attacker; related routes may also reveal file existence or cause memory exhaustion.

Affected context

The issue occurs in Postiz media-processing and publishing workflows when a non-URL media value is interpreted as a local filesystem path. It is most relevant where users can create posts, self-registration remains enabled, and path validation does not enforce containment within the configured upload directory. Additional file-checking and delivery routes may expose the same unconfined file access.

The issue occurs in Postiz media-processing and publishing workflows when a non-URL media value is interpreted as a local filesystem path. It is most relevant where users can create posts, self-registration remains enabled, and path validation does not enforce containment within the configured upload directory. Additional file-checking and delivery routes may expose the same unconfined file access.

Exploit preconditions

  • Attack surface: Post creation, media validation, and publishing endpoints
  • Required access: A registered Postiz account; open self-registration may allow an attacker to obtain one
  • Trigger point: Processing or publishing a post containing a local media path
  • Destination condition: The publishing workflow can send the resulting file to a Discord server controlled by the user
  • Why exploitation is possible: User-controlled paths are treated as filesystem locations without reliably confirming that they remain within the authorized upload directory
  • Attack surface: Post creation, media validation, and publishing endpoints
  • Required access: A registered Postiz account; open self-registration may allow an attacker to obtain one
  • Trigger point: Processing or publishing a post containing a local media path
  • Destination condition: The publishing workflow can send the resulting file to a Discord server controlled by the user
  • Why exploitation is possible: User-controlled paths are treated as filesystem locations without reliably confirming that they remain within the authorized upload directory

Why this happens

The vulnerability results from insufficient canonical path validation at a trust boundary. Postiz distinguishes web addresses from local media paths, but the local-path handling does not consistently verify that the resolved path is contained within the permitted upload directory before file operations occur.

This behavior maps primarily to CWE-22: Improper Limitation of a Pathname to a Restricted Directory, commonly called path traversal. The related CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component may apply where attacker-controlled path data is passed through validation or processing logic without adequate normalization and constraint enforcement.

The vulnerability results from insufficient canonical path validation at a trust boundary. Postiz distinguishes web addresses from local media paths, but the local-path handling does not consistently verify that the resolved path is contained within the permitted upload directory before file operations occur.

This behavior maps primarily to CWE-22: Improper Limitation of a Pathname to a Restricted Directory, commonly called path traversal. The related CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component may apply where attacker-controlled path data is passed through validation or processing logic without adequate normalization and constraint enforcement.

Potential impact

  • An attacker may read and disclose sensitive local files
  • Application secrets, configuration data, or credentials could be exposed
  • Retrieved files may be transmitted to an attacker-controlled Discord server
  • File-existence checks could reveal information about the server's filesystem
  • Repeated file operations may exhaust backend memory or degrade service availability
  • Additional compromise could become possible if exposed secrets provide access to other systems
  • An attacker may read and disclose sensitive local files
  • Application secrets, configuration data, or credentials could be exposed
  • Retrieved files may be transmitted to an attacker-controlled Discord server
  • File-existence checks could reveal information about the server's filesystem
  • Repeated file operations may exhaust backend memory or degrade service availability
  • Additional compromise could become possible if exposed secrets provide access to other systems

General mitigation guidance

Mitigation generally focuses on enforcing a strict filesystem trust boundary for every media-related route.

Common defensive patterns include:

  • Resolve and normalize candidate paths before access, then require containment within the configured upload directory
  • Prefer opaque server-side media identifiers over accepting client-supplied filesystem paths
  • Reject absolute paths, traversal components, symbolic-link escapes, and ambiguous path representations
  • Apply the same validation policy to publishing, existence-checking, preview, and download workflows
  • Use allowlisted file types and metadata rather than trusting user-provided media locations
  • Run workers with least-privilege filesystem access and isolate upload storage from secrets and application configuration
  • Bound file size, memory usage, and request frequency to reduce resource-exhaustion risk
  • Keep self-registration and outbound integrations subject to appropriate authorization and policy controls

Mitigation generally focuses on enforcing a strict filesystem trust boundary for every media-related route.

Common defensive patterns include:

  • Resolve and normalize candidate paths before access, then require containment within the configured upload directory
  • Prefer opaque server-side media identifiers over accepting client-supplied filesystem paths
  • Reject absolute paths, traversal components, symbolic-link escapes, and ambiguous path representations
  • Apply the same validation policy to publishing, existence-checking, preview, and download workflows
  • Use allowlisted file types and metadata rather than trusting user-provided media locations
  • Run workers with least-privilege filesystem access and isolate upload storage from secrets and application configuration
  • Bound file size, memory usage, and request frequency to reduce resource-exhaustion risk
  • Keep self-registration and outbound integrations subject to appropriate authorization and policy controls

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis rules that identify filesystem APIs receiving request, post, or metadata values
  • Code review checks for missing canonicalization and directory-containment validation
  • Tests covering relative paths, absolute paths, encoded separators, symbolic links, and alternate path forms
  • Repository-wide verification that every file-access route uses a shared path-policy helper
  • Runtime monitoring for access outside upload roots, unusual file-read failures, and unexpected outbound attachments
  • Policy enforcement that blocks direct client control of server filesystem paths and limits worker filesystem permissions
  • Automated security review tools that flag path construction and untrusted file-access patterns

Organizations can look for this class of issue through:

  • Static analysis rules that identify filesystem APIs receiving request, post, or metadata values
  • Code review checks for missing canonicalization and directory-containment validation
  • Tests covering relative paths, absolute paths, encoded separators, symbolic links, and alternate path forms
  • Repository-wide verification that every file-access route uses a shared path-policy helper
  • Runtime monitoring for access outside upload roots, unusual file-read failures, and unexpected outbound attachments
  • Policy enforcement that blocks direct client control of server filesystem paths and limits worker filesystem permissions
  • Automated security review tools that flag path construction and untrusted file-access patterns

Sources

SourceLink
gadvisory.orggadvisory.org/advisories/PSA-2026-E9AHFV
github.comgithub.com/gitroomhq/postiz-app
github.comgithub.com/gitroomhq/postiz-app/commit/12db9bd2f428b628a62809669c3d76297e07750a
github.comgithub.com/gitroomhq/postiz-app/releases/tag/v2.25.3

Frequently asked

questions

Yes, where the affected Postiz routes are exposed and an attacker can create or publish posts. The risk is increased when self-registration is enabled by default.

The attacker generally needs a Postiz account capable of storing media paths or invoking the relevant workflows. If registration is open, obtaining that account may not require prior authorization.

Treat client-supplied media values as untrusted identifiers, not filesystem paths. If local paths must be supported, canonicalize them and enforce containment within an approved upload directory for every route.

Centralize path validation, test all file-handling workflows against traversal and symlink cases, restrict worker permissions, and monitor filesystem access and outbound file transfers.

Yes, where the affected Postiz routes are exposed and an attacker can create or publish posts. The risk is increased when self-registration is enabled by default.

The attacker generally needs a Postiz account capable of storing media paths or invoking the relevant workflows. If registration is open, obtaining that account may not require prior authorization.

Treat client-supplied media values as untrusted identifiers, not filesystem paths. If local paths must be supported, canonicalize them and enforce containment within an approved upload directory for every route.

Centralize path validation, test all file-handling workflows against traversal and symlink cases, restrict worker permissions, and monitor filesystem access and outbound file transfers.

Find out what's already
exploitable in your codebase.