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.
A second, narrower route that creates team invitations signs extra fields from the request body in the same way.
{
"cna_assigner": "postiz",
"cwe_ids": [
"CWE-290",
"CWE-345",
"CWE-915"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/115xxx/CVE-2026-115933.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"introduced": "2.15.0"
},
{
"fixed": "2.25.3"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
]
}{
"extracted_events": [
{
"original_tag": "v2.25.3",
"range": [
{
"fixed": "a5affe62c74e39c1e7ac960d50d8418b807d532c"
}
],
"source": "REFERENCES_TAG"
},
{
"range": [
{
"fixed": "a5affe62c74e39c1e7ac960d50d8418b807d532c"
}
],
"source": "REFERENCES_COMMIT"
}
]
}