{"id":"CVE-2026-115933","aliases":["EUVD-2026-109300","GHSA-9j6f-8rw3-93c4"],"status":"published","title":"Forged signed tokens let any registered user take over other users and organizations","description":"Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. A route that refreshes the credentials of a browser-extension channel signed data taken from the request itself and stored the result where the requesting user can read it back. A user could therefore obtain a validly signed token containing any claims they choose, which the application accepts as a session, as an organization invitation with a chosen role, as a password reset or as an enterprise provisioning token.\n\nA second, narrower route that creates team invitations signs extra fields from the request body in the same way.","severity":{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00249,"percentile":0.16423,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-290","CWE-345","CWE-915"],"published":"2026-10-24T14:17:05Z","modified":"2026-11-04T02:30:42Z","products":[{"vendor":"gitroomhq","product":"postiz-app"}],"references":[{"url":"https://github.com/gitroomhq/postiz-app","tags":["product","package"]},{"url":"https://github.com/gitroomhq/postiz-app/releases/tag/v2.25.3","tags":["release-notes","advisory"]},{"url":"https://github.com/gitroomhq/postiz-app/commit/a5affe62c74e39c1e7ac960d50d8418b807d532c","tags":["patch","fix"]},{"url":"https://gadvisory.org/advisories/PSA-2026-YT2HMH","tags":["vendor-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115933","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-9j6f-8rw3-93c4"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/115xxx/CVE-2026-115933.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-115933","title":"Forged signed tokens let any registered user take over other users and organizations","description":"Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. A route that refreshes the credentials of a browser-extension channel signed data taken from the request itself and stored the result where the requesting user can read it back. A user could therefore obtain a validly signed token containing any claims they choose, which the application accepts as a session, as an organization invitation with a chosen role, as a password reset or as an enterprise provisioning token.\n\nA second, narrower route that creates team invitations signs extra fields from the request body in the same way.","status":"published","published":"2026-10-24T14:17:05.755Z","modified":"2026-11-02T14:12:51.289Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna"}],"cwes":["CWE-290","CWE-345","CWE-915"],"updated_at":"2026-11-02T18:00:08.034842Z"}],"euvd":[{"id":"EUVD-2026-109300","description":"Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. A route that refreshes the credentials of a browser-extension channel signed data taken from the request itself and stored the result where the requesting user can read it back. A user could therefore obtain a validly signed token containing any claims they choose, which the application accepts as a session, as an organization invitation with a chosen role, as a password reset or as an enterprise provisioning token.\n\nA second, narrower route that creates team invitations signs extra fields from the request body in the same way.","status":"published","published":"2026-10-24T14:17:05Z","modified":"2026-11-02T14:12:51Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T16:58:45.261111Z"}],"ghsa":[{"id":"GHSA-9j6f-8rw3-93c4","title":"Postiz signs its session, invitation and password reset tokens with one shared secret and without...","description":"Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. A route that refreshes the credentials of a browser-extension channel signed data taken from the request itself and stored the result where the requesting user can read it back. A user could therefore obtain a validly signed token containing any claims they choose, which the application accepts as a session, as an organization invitation with a chosen role, as a password reset or as an enterprise provisioning token.\n\nA second, narrower route that creates team invitations signs extra fields from the request body in the same way.","status":"published","published":"2026-10-24T15:32:53Z","modified":"2026-10-24T15:32:59Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-290"],"updated_at":"2026-11-02T15:14:22.008612Z"}],"nvd":[{"id":"CVE-2026-115933","description":"Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. A route that refreshes the credentials of a browser-extension channel signed data taken from the request itself and stored the result where the requesting user can read it back. A user could therefore obtain a validly signed token containing any claims they choose, which the application accepts as a session, as an organization invitation with a chosen role, as a password reset or as an enterprise provisioning token.\n\nA second, narrower route that creates team invitations signs extra fields from the request body in the same way.","status":"published","published":"2026-10-24T15:17:33.957Z","modified":"2026-11-02T15:17:15.783Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"secondary"}],"cwes":["CWE-290","CWE-345","CWE-915"],"updated_at":"2026-11-02T20:51:42.579129Z"}],"osv":[{"id":"CVE-2026-115933","title":"Forged signed tokens let any registered user take over other users and organizations","description":"Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. A route that refreshes the credentials of a browser-extension channel signed data taken from the request itself and stored the result where the requesting user can read it back. A user could therefore obtain a validly signed token containing any claims they choose, which the application accepts as a session, as an organization invitation with a chosen role, as a password reset or as an enterprise provisioning token.\n\nA second, narrower route that creates team invitations signs extra fields from the request body in the same way.","status":"published","published":"2026-10-24T14:17:05.755Z","modified":"2026-11-04T02:30:42.29943069Z","cvss":[{"version":"3.1","score":9.9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-290","CWE-345","CWE-915"],"updated_at":"2026-11-04T02:54:44.889498Z"}]}}
