---
id: CVE-2026-9094
aliases:
  - GHSA-c9w5-qp6m-m395
title: >-
  Casdoor: GetTokenExchangeToken bypass through lack of cross-organization JWT
  signature check
summary: >-
  Casdoor: GetTokenExchangeToken bypass through lack of cross-organization JWT
  signature check
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
vendor: casdoor
product: github.com/casdoor/casdoor
ecosystem: go
affected:
  - github.com/casdoor/casdoor < 2.387.0
patched:
  - github.com/casdoor/casdoor 2.387.0
published: '2026-05-28'
updated: '2026-07-09'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-c9w5-qp6m-m395'
references:
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-9094'
  - url: 'https://github.com/casdoor/casdoor/commit/d92b8568686d'
  - url: 'https://github.com/casdoor/casdoor'
  - url: 'https://kb.cert.org/vuls/id/780781'
tags:
  - osv
  - go
epss: 0.00483
epssPercentile: 0.39029
ingestedAt: '2026-07-10T18:56:50.769Z'
---

## Overview

Casdoor versions 2.362.0 and earlier contain a vulnerability enabling cross-organization token exchange. The GetTokenExchangeToken function in object/token_oauth.go validates JWT signatures but does not verify that the token's user belongs to the same organization as the target application. This can result in privilege escalation across organizational boundaries.

## Affected packages

- `github.com/casdoor/casdoor < 2.387.0`

## Remediation

Upgrade to a patched release:

- `github.com/casdoor/casdoor 2.387.0`
