Skip to content
Heist/ feed
Back to feed
Critical

Postiz has cross-tenant SUPERADMIN takeover via Skool-provider JWT forgery

Type: advisorySources: OSV

Postiz is an AI social media scheduling tool. In versions prior to 2.21.8, the Skool integration callback signed an attacker-controlled JSON blob into a session-shape JWT using the application's JWT_SECRET, and the auth middleware trusted every claim in that JWT without re-resolving the user from the database. Any authenticated Postiz user could forge a SUPERADMIN session and impersonate arbitrary organizations. This allowed Full Access to the following: all parts of Postiz, including users registered to the specific instance and the ability to post in the name of the victim's social media channels added to that Postiz instance. This issue has been fixed in version 2.21.8.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-48781
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 16:10 UTC · Revision 1

Source evidence

Postiz has cross-tenant SUPERADMIN takeover via Skool-provider JWT forgery

core-osv · Original source

Published 16 Jun 2026, 21:31 UTC

Postiz is an AI social media scheduling tool. In versions prior to 2.21.8, the Skool integration callback signed an attacker-controlled JSON blob into a session-shape JWT using the application's JWT_SECRET, and the auth middleware trusted every claim in that JWT without re-resolving the user from the database. Any authenticated Postiz user could forge a SUPERADMIN session and impersonate arbitrary organizations. This allowed Full Access to the following: all parts of Postiz, including users registered to the specific instance and the ability to post in the name of the victim's social media channels added to that Postiz instance. This issue has been fixed in version 2.21.8.

osv:CVE-2026-48781
Complete source record
{
  "id": "b5b45f07be9fd3019cabde0fe306bdb8c1f88ddbe34c3be0998a1b145d8ddfe2",
  "url": "https://osv.dev/vulnerability/CVE-2026-48781",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Postiz has cross-tenant SUPERADMIN takeover via Skool-provider JWT forgery",
    "summary": "Postiz is an AI social media scheduling tool. In versions prior to 2.21.8, the Skool integration callback signed an attacker-controlled JSON blob into a session-shape JWT using the application's JWT_SECRET, and the auth middleware trusted every claim in that JWT without re-resolving the user from the database. Any authenticated Postiz user could forge a SUPERADMIN session and impersonate arbitrary organizations. This allowed Full Access to the following: all parts of Postiz, including users registered to the specific instance and the ability to post in the name of the victim's social media channels added to that Postiz instance. This issue has been fixed in version 2.21.8.",
    "evidence": "osv:CVE-2026-48781",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-48781",
      "aliases": [
        "CVE-2026-48781",
        "GHSA-j77w-h625-56q2"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/gitroomhq/postiz-app",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "9a7d9deafcf373c759e2ec7955206a2a31b003f3"
                },
                {
                  "fixed": "23696d2973510ae1f3f48bfa41a6bfbbf9827b05"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.21.8"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "23696d2973510ae1f3f48bfa41a6bfbbf9827b05"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "9a7d9deafcf373c759e2ec7955206a2a31b003f3"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.21.8"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.21.7",
            "v2.21.6",
            "v2.21.5",
            "v2.21.3",
            "v2.21.2",
            "v2.21.1",
            "v2.21.0",
            "v2.20.2",
            "v2.20.1",
            "v2.20.0",
            "v2.19.0",
            "v2.18.0",
            "v2.17.0",
            "v2.16.0",
            "v2.15.1",
            "v2.15.0",
            "v2.14.0",
            "v2.13.0",
            "v2.12.1",
            "v2.12.0",
            "v2.11.3",
            "v2.11.1",
            "v2.11.0",
            "v2.10.1",
            "v2.10.0",
            "v2.9.0",
            "v2.8.3",
            "v2.8.2",
            "v2.8.1",
            "v2.8.0",
            "v2.7.0",
            "v2.6.4",
            "v2.6.3",
            "v2.6.2",
            "v2.6.1",
            "v2.5.4",
            "v2.5.3",
            "v2.4.3",
            "v2.5.2",
            "v2.5.1",
            "v2.5.0",
            "v2.4.2",
            "v2.4.1",
            "v2.4.0",
            "v2.3.1",
            "v2.3.0",
            "v2.2.5",
            "v2.2.4",
            "v2.2.3",
            "v2.2.1",
            "v2.2.0",
            "v2.1.2",
            "v2.1.1",
            "v2.0.8",
            "v2.0.7",
            "v2.0.6",
            "v2.0.5",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2",
            "v2.0.1",
            "v1.65.7",
            "v1.65.6",
            "v1.65.5",
            "v1.65.4",
            "v1.65.3",
            "v1.65.2",
            "v1.65.1",
            "v1.65.0",
            "v1.64.1",
            "v1.64.0",
            "v1.63.0",
            "v1.62.3",
            "v1.62.2",
            "v1.62.1",
            "v1.62.0",
            "v1.61.2",
            "v1.61.0",
            "v1.60.1",
            "v1.60.0",
            "v1.59.0",
            "v1.58.0",
            "v1.57.0",
            "v1.56.0",
            "v1.55.5",
            "v1.54.0",
            "v1.55.4",
            "v1.55.3",
            "v1.55.2",
            "v1.55.1",
            "v1.55.0",
            "v1.54.1",
            "v1.53.0",
            "v1.52.2",
            "v1.52.1",
            "v1.52.0",
            "v1.51.0",
            "v1.50.0",
            "v1.49.1",
            "v1.49.0",
            "v1.48.4",
            "v1.48.3",
            "v1.48.2",
            "v1.48.1",
            "v1.47.0",
            "v1.45.1",
            "v1.44.2",
            "v1.44.1",
            "v1.43.5",
            "v1.43.4",
            "v1.43.3",
            "v1.43.2",
            "v1.43.1",
            "v1.43.0",
            "v1.41.1",
            "v1.41.0",
            "v1.40.1",
            "v1.40.0",
            "v1.39.3",
            "v1.39.2",
            "v1.38.2",
            "v1.38.1",
            "v1.37.4",
            "v1.37.3",
            "v1.37.2",
            "v1.37.1",
            "v1.36.1",
            "v1.35.1",
            "v1.34.1",
            "v1.33.2",
            "v1.33.1",
            "v1.32.1",
            "v1.31.1",
            "v1.30.1",
            "v1.29.1",
            "v1.28.1",
            "v1.27.2",
            "v1.26.1",
            "v1.24.1",
            "v1.23.2",
            "v1.23.1",
            "v1.22.1",
            "v1.10.1",
            "v1.10.0",
            "v1.8.1",
            "v1.7.12",
            "v1.6.12",
            "v1.6.9",
            "v1.6.4",
            "v1.6.2",
            "v1.6.1",
            "1.6.0",
            "v1.5.0",
            "v1.4.0",
            "v1.3.0",
            "v1.2.0",
            "v1.1.0",
            "v1.0.0",
            "v0.0.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48781.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:30.161458841Z",
      "provider": "osv",
      "references": [
        "https://gadvisory.org/advisories/PSA-2026-2CAQ96",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48781.json",
        "https://github.com/gitroomhq/postiz-app/security/advisories/GHSA-j77w-h625-56q2",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-48781",
        "https://github.com/gitroomhq/postiz-app/commit/23696d2973510ae1f3f48bfa41a6bfbbf9827b05"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-302",
          "CWE-345",
          "CWE-863"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48781.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-48781",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 497165,
  "published_at": "2026-06-16T21:31:28.955+00:00"
}