Medium severity · published Jun 16, 2026
CVE-2026-48783
Postiz has an unauthenticated billing-enforcement bypass via /public/modify-subscription
4.8
CVSS
0.2%
EPSS
No
On KEV
Description
Postiz is an AI social media scheduling tool. Versions prior to 2.21.8 contained an unauthenticated endpoint that accepted a signed token and applied subscription-enforcement side effects to the organization referenced in that token's claims, without verifying the token's intended purpose. The endpoint, /public/modify-subscription, could not change the persisted subscription tier, but it did execute enforcement-related side effects on the caller's own organization, including adjusting team-member enablement state, disabling integrations exceeding the asserted plan's limits, and resetting the scheduled-post cron when the asserted plan was the free tier. Impact is limited to the attacker's own organization and cannot be redirected at other tenants through this endpoint. This issue has been fixed in version 2.21.8.
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L
Attack vector
Network
Complexity
High
Privileges
None
User interaction
None
Confidentiality
None
Integrity
Low
Availability
Low
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.2% · higher than 6% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PO
postiz-app · gitroomhq
< 2.21.8 · source: vendor
Affected product
PO
postiz-app
gitroomhq
More from postiz-app
9.9
CVE-2026-115933
Forged signed tokens let any registered user take over other users and organizations
9.9
CVE-2026-115931
Arbitrary file read and backend crash through unrestricted provider method calls
9.9
CVE-2026-48781
Postiz has cross-tenant SUPERADMIN takeover via Skool-provider JWT forgery
9.8
CVE-2026-19264
Unauthenticated arbitrary file read via /uploads path traversal (URL-encoded separators) leading to instance takeover
9.8
CVE-2026-42298
Postiz: Arbitrary Code Execution and Token Exfiltration in pr-docker-build.yml via untrusted Dockerfile.dev