Published advisories
Advisories published by GAdvisory.
PSA-2026-04-M1S0CVE-2026-423462026-04-28Postiz AppTOCTOU DNS rebinding bypasses all SSRF URL validation paths
TOCTOU DNS rebinding bypasses all SSRF URL validation paths
MediumPSA-2026-T0E4W0CVE-2026-425562026-04-27Postiz AppPostiz stored XSS in public preview page
Postiz stored XSS in public preview page
HighGSSA-2026-04-ZMYF7A2026-04-25DiscordTickets EnhancedHTML/JS injection and open redirect via OAuth callback meta-refresh
The OAuth callback embedded an attacker-controlled `?r=` redirect parameter into a `<meta http-equiv="refresh">` tag without validation, allowing JavaScript execution and arbitrary redirects in the application origin after authentication.
HighGSSA-2026-04-ZFS2R42026-04-25DiscordTickets EnhancedCross-guild privilege escalation via mass assignment on resource create
The tag and category create endpoints spread `req.body` after the guild relation in Prisma input. A body containing `guild.connect.id` overrides the trusted scope, letting an admin of guild A create resources owned by guild B.
HighGSSA-2026-04-EHB7HE2026-04-25DiscordTickets EnhancedMissing input validation function on guild customization endpoint
The guild customization PATCH endpoint called a `validateCustomization()` function that was never defined, causing the route to throw `ReferenceError`. The intended input validation (avatar/banner data URI checks, length limits) was therefore absent.
MediumGSSA-2026-04-0503DX2026-04-25DiscordTickets EnhancedAuthentication cookie missing `Secure` flag
The JWT authentication cookie was set with `secure: false`, allowing it to be transmitted over plaintext HTTP and intercepted by a network-positioned attacker.
MediumGSSA-2026-04-7H74R22026-04-25DiscordTickets EnhancedOAuth state cookie missing `Secure` and `Path` attributes
The OAuth `state` cookie used for CSRF protection on the login flow lacked `Secure`, `Path`, and `Max-Age`, weakening the CSRF guarantee on plaintext-HTTP hops.
LowGSSA-2026-04-N08T9C2026-04-25DiscordTickets EnhancedService API tokens never expire
JWTs minted by `/api/users/@me/key` (service tokens granting admin-equivalent access via `service: true`) had no `expiresAt`, and the auth middleware silently passed `undefined < Date.now()`. Service tokens were valid forever.
HighGSSA-2026-04-30BV092026-04-25DiscordTickets Enhanced`INVALIDATE_TOKENS` global revocation broken for OAuth user tokens
OAuth-issued JWTs were signed without a `createdAt` field, so the operator-facing `INVALIDATE_TOKENS` revocation switch silently no-op'd for all user tokens — only service tokens were affected.
MediumGSSA-2026-04-NJB9RF2026-04-25DiscordTickets EnhancedMustache HTML escaping disabled globally for the entire process
The transcript command set `Mustache.escape = text => text` at module level, disabling HTML escaping for every Mustache template in the process. Latent XSS risk if any other template is added or if the transcript is ever rendered as HTML.
LowGSSA-2026-04-3GT28F2026-04-25DiscordTickets EnhancedNo security headers, rate limiting, or CORS policy on the HTTP layer
The Fastify HTTP server registered no `helmet`, no rate limiter, and no CORS policy, leaving the dashboard and admin API exposed to clickjacking, MIME-sniffing, brute-force, and missing-CSP risks.
MediumGSSA-2026-04-Y27PS42026-04-25DiscordTickets EnhancedHTML injection in import progress stream (admin self-XSS via crafted ZIP)
The data-import endpoint streamed HTML progress lines and embedded raw error messages from the unzipper / JSON parser. A malicious ZIP could surface attacker-controlled HTML/JS into the importing admin's browser.
LowGSSA-2026-04-0RTEGR2026-04-25DiscordTickets EnhancedEmbed image and thumbnail URLs not validated on panel creation
The panel creation endpoint passed `data.image` and `data.thumbnail` straight into Discord embed builders without validating the URL scheme, accepting `data:`, `attachment:`, or arbitrary protocols.
LowGSSA-2026-04-H5BNHW2026-04-25DiscordTickets EnhancedDISABLE_ENCRYPTION env var silently disables data encryption
Setting `DISABLE_ENCRYPTION=true` made all ticket messages and feedback comments stored in plaintext, with no log warning and no production guardrail. An operator who flipped this for a one-off task and forgot would silently leak all sensitive data going forward.
MediumGSSA-2026-04-VAWHY22026-04-25DiscordTickets Enhanced`ENCRYPTION_KEY` reused for JWT signing — cross-purpose key reuse
The same secret signed JWTs and encrypted at-rest data via Cryptr. Compromise of either purpose exposed the other; rotation required dual-impact downtime.
LowGSSA-2026-04-R8G5972026-04-25DiscordTickets EnhancedExport rate-limit time check uses `getDate()` (day-of-month) instead of `Date.now()`
The per-guild export lock's stale-detection compared an epoch-millisecond timestamp against `new Date().getDate()` (1–31). The branch was always false; if the cleanup paths ever failed, a guild could not export again until process restart.
LowGSSA-2026-04-H08K1C2026-04-25DiscordTickets EnhancedBody trim hook iterates `for…in` instead of own keys
The pre-handler that trims string fields on `req.body` used `for…in`, walking the prototype chain. Brittle to any upstream prototype-pollution and not strictly correct.
LowGSSA-2026-04-H0GAWV2026-04-25DiscordTickets EnhancedNULL dereference on tag DELETE for missing or invalid tag id
The tag delete handler used short-circuit evaluation for the lookup, then accessed `original.guildId` unconditionally — yielding 500 on already-deleted tags or non-numeric ids.
LowGSSA-2026-04-QZEZQZ2026-04-25DiscordTickets EnhancedSettings PATCH allowed wide field assignment (mass-assignment within admin scope)
The settings PATCH endpoint accepted the entire body, only stripping `id` and `createdAt`. Any other Guild model field — including bot identity fields covered by the dedicated customization endpoint — could be set without that endpoint's validation.
LowGSSA-2026-04-MHVR8C2026-04-25DiscordTickets EnhancedUnauthenticated transcript redirect leaks ticket existence
The `/transcript/:ticketId` route had no authentication and queried the DB to redirect to the admin transcript URL — distinguishing 404 from 302, which leaks ticket-existence information to anonymous attackers.
MediumGSSA-2026-04-AMHCRR2026-04-25CoBC Event TrackerWeak default fallback secrets allow JWT and CSRF token forgery in cobc-events
cobc-events <1.0.1 fell back to hard-coded development secrets when JWT_SECRET / SESSION_SECRET were unset, allowing forgery of session JWTs and CSRF HMAC tokens.
CriticalGSSA-2026-04-P1V3KV2026-04-25CoBC Event TrackerNon-constant-time CSRF token comparison and lax hex parsing in cobc-events
The CSRF middleware in cobc-events <1.0.1 compared the cookie nonce with `!==` before the timing-safe HMAC check and accepted malformed hex input, leaking timing data and weakening token verification.
MediumGSSA-2026-04-RSDKJ22026-04-25CoBC Event TrackerPermissive CORS configuration allows credentialed cross-origin requests in cobc-events
cobc-events <1.0.1 enabled CORS with the default `cors()` configuration, accepting any `Origin`. Combined with the JWT cookie, this allowed cross-origin sites to issue authenticated requests against the API.
MediumGSSA-2026-04-4YYSAR2026-04-25CoBC Event TrackerMissing HSTS and incomplete CSP directives in cobc-events
cobc-events <1.0.1 did not set Strict-Transport-Security and was missing key Content-Security-Policy directives (`frame-ancestors`, `object-src`, `base-uri`, `form-action`), enabling downgrade and clickjacking attacks.
MediumGSSA-2026-04-PR3QFF2026-04-25CoBC Event TrackerIDOR on /api/loa/user/:userId and /api/strikes/user/:userId in cobc-events
Endpoints returning another user's LoA/strikes only required `view_own_*` permission and did not enforce that the caller owned the path parameter, allowing any authenticated host to read other users' history.
MediumGSSA-2026-04-XJKMV42026-04-25CoBC Event TrackerPermissive file upload filter accepts SVG enabling stored XSS in cobc-events
The multer fileFilter in cobc-events <1.0.1 used the regex `^(image|video|application/pdf)`, which matches `image/svg+xml` and any `video/*` MIME type. SVG uploads enable stored XSS when later served from the application origin.
MediumGSSA-2026-04-RHBD5T2026-04-25CoBC Event TrackerDiscord bot /config and /setchannel commands lacked authorization in cobc-events
The `/config` and `/setchannel` slash commands in cobc-events <1.0.1 had no permission check, letting any guild member toggle logging features or reroute strike/event/LoA log channels.
HighGSSA-2026-04-3ZVC5D2026-04-25CoBC Event TrackerUnbounded pagination limits enable resource exhaustion in cobc-events
Several REST endpoints accepted a client-controlled `limit` query parameter with no upper bound, allowing authenticated users to request arbitrarily large result sets and exhaust database / memory.
MediumGSSA-2026-04-8PDG132026-04-25CoBC Event TrackerStrike status filter accepted arbitrary strings in cobc-events
`/api/strikes` previously accepted any comma-separated string in `?status=` and forwarded it to the service layer without validation against the StrikeStatus enum.
MediumGSSA-2026-04-QH1CCP2026-04-25CoBC Event TrackerCache invalidation used blocking Redis KEYS command in cobc-events
`CacheService.invalidatePattern` called `redis.keys(pattern)`, which blocks the Redis instance. On large keyspaces this could stall the entire Redis server and create a denial-of-service condition.
MediumGSSA-2026-04-TPJNF12026-04-25CoBC Event TrackerStored XSS via manual HTML escaping in events log-outcome view in cobc-events
The `log-outcome.ejs` template used the unescaped `<%-` output tag with hand-rolled HTML escaping that did not cover all XSS vectors, allowing stored XSS via `event.notes`.
MediumPSA-2026-04-1YDYCVE-2026-422982026-04-24Postiz AppArbitrary Code Execution and Token Exfiltration in pr-docker-build.yml via untrusted Dockerfile.dev
CriticalPSA-2026-04-6EZ5CVE-2026-401682026-04-22Postiz AppServer-Side Request Forgery via Redirect Bypass in /api/public/stream
Server-Side Request Forgery via Redirect Bypass in /api/public/stream
HighPSA-2026-04-5MVGCVE-2026-00032026-04-19Postiz AppUnrestricted File Upload via MIME Type Spoofing Leads to Stored XSS
Unrestricted File Upload via MIME Type Spoofing Leads to Stored XSS
CriticalPSA-2026-04-HVBMCVE-2026-345902026-04-19Postiz AppSSRF via Webhook Creation Endpoint Missing URL Safety Validation
SSRF via Webhook Creation Endpoint Missing URL Safety Validation
MediumPSA-2026-04-KT4WCVE-2026-345762026-04-19Postiz AppSSRF in upload-from-url endpoint allows fetching internal resources and cloud metadata
SSRF in upload-from-url endpoint allows fetching internal resources and cloud metadata
MediumPSA-2026-04-422GCVE-2026-345772026-04-19Postiz AppUnauthenticated Full-Read SSRF via /public/stream Endpoint with Trivially Bypassable Extension Check
Unauthenticated Full-Read SSRF via /public/stream Endpoint with Trivially Bypassable Extension Check
HighPSA-2026-04-SRGACVE-2024-343512026-04-19Postiz AppHigh-Severity SSRF in Postiz App
High-Severity SSRF in Postiz App
HighPSA-2026-04-ZR1M2026-04-19Postiz AppMultiple SSRF Vectors - Webhooks, RSS Feed, URL Loader (CWE-918)
Multiple SSRF Vectors - Webhooks, RSS Feed, URL Loader (CWE-918)
HighPSA-2026-04-PY6VCVE-2025-536412026-04-19Postiz AppHeader mutation in middleware facilitates SSRF
Header mutation in middleware facilitates SSRF
High