PSA-2026-04-6EZ5CVE-2026-40168GCVE-125-2026-04-6EZ5April 22, 2026Assigned April 10, 2026Server-Side Request Forgery via Redirect Bypass in /api/public/stream
Server-Side Request Forgery via Redirect Bypass in /api/public/stream
Affected (1)
- gitroomhqpostiz-app
- ≥ 0Fixed in 2.21.5Affected
All other versions: Unaffected
Mitigations
Solutions
- Upgrade to v2.21.5 or later.
Exploits
- Full-read access to the internal network.
Overview
The /api/public/stream endpoint is vulnerable to SSRF. Although the application validates the initially supplied URL and blocks direct private/internal hosts, it does not re-validate the final destination after HTTP redirects. As a result, an attacker can supply a public HTTPS URL that passes validation and then redirects the server-side request to an internal resource.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L- Attack Vector
- Network
- Attack Complexity
- Low
- Privileges Required
- None
- User Interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- None
- Availability
- Low
Weaknesses (1)
References (2)
Credits (3)
- S4nsoReporter · https://github.com/S4nso
- egelhausCoordinator · https://github.com/egelhaus
- nevo-davidRemediation developer · https://github.com/nevo-david
Context
Impacts
Internal network scanning: An attacker can probe internal hosts and ports via timing differences in webhook delivery. Even though responses are not returned, reachability can be inferred.
Blind interaction with internal services: The SSRF sends POST requests with attacker-influenced body content (serialized post data) to internal services. Services without authentication (e.g., internal APIs, caches, message queues) could be manipulated.
Cloud metadata access: On cloud deployments (AWS, GCP, Azure), the instance metadata service at 169.254.169.254 may be reachable, potentially exposing IAM credentials or instance configuration. While the response is not reflected to the attacker, the POST request itself reaches the metadata service.
Persistence: The malicious webhook URL is stored in the database and triggered on every post publication until deleted, creating a persistent SSRF primitive.
Timeline
- 04/03/2026 08:39
Postiz has received the advisory.
- 04/03/2026 15:17
Postiz has acknowledged and tested the advisory.
- 04/09/2026 12:20
Postiz has developed the fix, tested it, created the release and published the advisory.
- 04/10/2026 17:10
GitHub has issued CVE-2026-40168 for this advisory.