Skip to main content

Postiz App CVE-2026-40487

| EUVDEUVD-2026-23634 CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-04-18 GitHub_M
9.0
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Authenticate to Postiz
  2. Delivery
    Craft malicious HTML/SVG file
  3. Exploit
    Spoof Content-Type header during upload
  4. Install
    Server stores file with original extension
  5. C2
    Distribute link to victim users
  6. Execute
    Victim accesses uploaded file
  7. Impact
    Nginx serves as executable content
  8. Step 8
    XSS executes in victim browser
  9. Step 9
    Hijack session tokens
  10. Step 10
    Take over victim account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires authenticated access to Postiz application with file upload privileges (PR:L indicates low-privilege user account sufficient). Exploitation requires user interaction (UI:R) - a victim must view or access the uploaded malicious file through their browser. The application must be configured with nginx serving uploaded files directly from storage with MIME type determined by file extension rather than validated content type. No special deployment configuration or non-default settings are required beyond standard Postiz installation, making all default deployments of affected versions vulnerable. Attack is network-based (AV:N) requiring no local system access. Limiting factors include: attacker must successfully social engineer victims to access the uploaded malicious content, and some browsers' XSS auditors may block certain payload types (though modern browsers have largely deprecated built-in XSS filters).

Impact

Real-world risk is HIGH despite requiring authenticated access (PR:L) and user interaction (UI:R). The low attack complexity (AC:L) means exploitation requires only basic authenticated access to the file upload feature and social engineering to make victims view the uploaded content. The changed scope (S:C) elevates severity significantly - attackers compromise not just their own session but other users' accounts through stored XSS. High confidentiality and integrity impact (C:H/I:H) reflects full session hijacking and account takeover capabilities. While no EPSS score is provided and the CVE is not in CISA KEV, the availability of a public GitHub Security Advisory (GHSA-44wg-r34q-hvfx) means attack details are documented and reproducible. For multi-tenant SaaS deployments of Postiz, this represents critical risk as one malicious authenticated user can compromise all other tenant accounts. The targeted nature (authenticated attacker, social media scheduling context) suggests lower widespread exploitation probability but HIGH impact for organizations using affected versions.

Exploit ScenarioDerived

An authenticated attacker with basic user privileges creates an account on the Postiz platform and navigates to a file upload feature (profile picture, media attachment, etc.). They craft a malicious HTML file containing JavaScript session hijacking code or an SVG image with embedded XSS payload. During upload, the attacker intercepts the request and modifies the Content-Type header to image/png or image/jpeg to bypass client-side and weak server-side validation. The server stores the file with its original .html or .svg extension. The attacker then shares a link to the uploaded file with other users via social engineering (phishing email, chat message, or embedding in platform content). When victims click the link, nginx serves the file as text/html or image/svg+xml based on extension, executing the attacker's JavaScript in the victims' browser sessions, stealing session cookies or performing actions as the victim.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Apr 18, 2026

File upload validation bypass in Postiz social media scheduler (versions before 2.21.6) allows authenticated users to upload executable file types (HTML, SVG) with spoofed Content-Type headers, achieving stored XSS when nginx serves files using their original extensions. Attackers can hijack sessions and take over other user accounts. CVSS 8.9 (High) reflects network attack vector with low complexity requiring only low-privilege authentication and user interaction. EPSS data not provided. Not listed in CISA KEV. Vendor patch released in version 2.21.6.

Earlier versions of this analysis (1)
v1 Apr 18, 2026 - 01:53 CVSS 8.9

Stored Cross-Site Scripting in Postiz App versions before 2.21.6 allows authenticated attackers to upload HTML/SVG files via Content-Type header spoofing, achieving XSS execution in victim browsers for account takeover. The file upload validation relies solely on client-supplied MIME type rather than validating actual file content, enabling attackers to bypass restrictions by manipulating HTTP headers while uploading executable content. Nginx serves these files with their original dangerous Content-Types (text/html, image/svg+xml), executing malicious scripts when victims access the uploaded files. CVSS 8.9 (High) reflects the changed scope (S:C) indicating cross-user impact. EPSS and KEV data not available, but the authentication requirement (PR:L) and need for user interaction (UI:R) limit exploitation to social engineering scenarios against authenticated users.

RemediationAI

Upgrade immediately to Postiz version 2.21.6 or later, released by the vendor to address this vulnerability (https://github.com/gitroomhq/postiz-app/releases/tag/v2.21.6). The patch implements proper server-side file type validation independent of client-supplied Content-Type headers. If immediate upgrade is not feasible, implement these compensating controls: (1) Configure nginx to serve all user-uploaded content from a separate domain/subdomain with restrictive Content-Security-Policy headers to prevent script execution - this breaks same-origin XSS but requires application architecture changes and may affect legitimate file sharing features; (2) Implement allowlist-based file extension validation rejecting .html, .svg, .xml, and other executable types at the application layer before storage - this reduces attack surface but sophisticated attackers may find bypass techniques; (3) Set X-Content-Type-Options: nosniff header and force all uploads to download with Content-Disposition: attachment - this prevents browser rendering but degrades user experience for legitimate media previews. Review application logs for suspicious file uploads (especially HTML/SVG files) uploaded since deployment to identify potential compromise.

Affected VersionsENISA

postiz-app < 2.21.6

Affected Packages

euvd postiz_app fix: 2.21.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Postiz (gitroomhq/postiz-app) is an AI-powered social media scheduling platform. The vulnerability stems from insufficient server-side validation of uploaded files (CWE-79: Improper Neutralization of Input During Web Page Generation). The application validates files based solely on the HTTP Content-Type header sent by the client, which can be arbitrarily spoofed. When malicious files (HTML, SVG with embedded JavaScript) are uploaded, the nginx web server determines MIME type from file extension rather than the spoofed upload header, serving them as text/html or image/svg+xml. This creates a stored XSS condition where the malicious content executes in victims' browsers within the application's security origin, bypassing same-origin policy protections. The scope change (S:C) in the CVSS vector indicates the vulnerability impacts resources beyond the vulnerable component itself, consistent with cross-user account compromise scenarios.

Know when Postiz App gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 9.0 CRITICAL
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

6
Severity Changed
Oct 26, 2026 - 21:23 NVD
HIGH CRITICAL
CVSS changed
Oct 26, 2026 - 21:23 NVD
8.9 (HIGH) 9.0 (CRITICAL)
Patch released
Apr 23, 2026 - 15:27 nvd
Patch available
Analysis Updated
Apr 18, 2026 - 02:27 vuln.today
v2 - CVSS changed
Patch available
Apr 18, 2026 - 02:01 EUVD
CVE Published
Apr 18, 2026 - 01:19 nvd
HIGH 8.9

DescriptionNVD

Postiz is an AI social media scheduling tool. Prior to version 2.21.6, a file upload validation bypass allows any authenticated user to upload arbitrary HTML, SVG, or other executable file types to the server by spoofing the Content-Type header. The uploaded files are then served by nginx with a Content-Type derived from their original extension (text/html, image/svg+xml), enabling Stored Cross-Site Scripting (XSS) in the context of the application's origin. This can lead to session riding, account takeover, and full compromise of other users' accounts. Version 2.21.6 contains a fix.

Executive ViewAI

Why It Matters

Postiz social media scheduler versions before 2.21.6 contain a file upload validation bypass that allows authenticated users to upload malicious files disguised as benign content types, leading to stored cross-site scripting (XSS) attacks that can compromise other user accounts and hijack sessions. Organizations using Postiz should prioritize immediate patching to prevent account takeover and lateral privilege escalation within their social media management infrastructure.

Business Impact: High
Compensating Controls

Apply vendor patch. Until patching is complete: (1) Restrict file upload functionality to administrators only if operationally feasible; (2) Configure nginx to serve uploaded files with Content-Type: text/plain header regardless of file extension; (3) Disable script execution in upload directories via nginx configuration (add 'location ~ \.html$ { return 403; }' rules); (4) Implement strict Content-Type validation on upload acceptance, rejecting any requests where declared type does not match file magic bytes.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

65
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +45
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

CVE-2026-115931 CRITICAL
9.9 Oct 23

Postiz (gitroomhq/postiz-app) before v2.25.1 allows any signed-in user to invoke arbitrary internal integration methods

CVE-2026-48781 CRITICAL
9.9 Jun 16

Privilege escalation to SUPERADMIN in Postiz (gitroomhq/postiz-app) versions prior to 2.21.8 allows any authenticated us

CVE-2026-115933 CRITICAL
9.9 Oct 24

Improper token-purpose validation in Postiz (gitroomhq/postiz-app) through v2.25.2 allows any authenticated user holding

CVE-2026-42298 CRITICAL
9.8 May 08

Arbitrary code execution and privileged token theft affects Postiz (gitroomhq/postiz-app) prior to commit da44801 throug

CVE-2026-115932 CRITICAL
9.6 Oct 24

Postiz instances older than v2.25.3 that store media on local disk let a registered user have the publishing worker read

CVE-2026-19264 CRITICAL
9.3 Aug 07

Arbitrary file read in Postiz (gitroomhq/postiz-app before 2.22.1) lets an unauthenticated remote attacker retrieve any

CVE-2026-94456 CRITICAL
9.1 Sep 22

Predictable, non-cryptographic credential generation in Postiz (gitroomhq/postiz-app, all versions prior to v2.24.0) all

CVE-2026-42556 CRITICAL
9.0 May 08

Stored cross-site scripting in Postiz (gitroomhq/postiz-app) versions 2.21.6 through 2.21.6 lets any authenticated user

CVE-2026-34577 HIGH
8.6 Apr 02

Server-side request forgery in Postiz AI social media scheduling tool (versions < 2.21.3) allows unauthenticated remote

CVE-2026-34576 HIGH
8.3 Apr 02

Server-side request forgery (SSRF) in Postiz social media scheduling tool versions prior to 2.21.3 allows authenticated

CVE-2026-40168 HIGH
8.2 Apr 10

Server-side request forgery in Postiz (gitroomhq postiz-app) versions prior to 2.21.5 allows unauthenticated remote atta

CVE-2026-48799 HIGH
7.7 Jul 15

Business-logic authentication bypass in Postiz self-hosted AI social media scheduler (gitroomhq/postiz-app) before 2.21.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy