---
id: CVE-2026-32113
title: Discourse is an open-source discussion platform
summary: >-
  Discourse is an open-source discussion platform. From versions 2026.1.0-latest
  to before 2026.1.3, 2026.2.0-latest to before 2026.2.2, and 2026.3.0-latest to
  before 2026.3.0, the enter action in StaticController reads the
  sso_destination…
severity: medium
cvss: 6.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'
cwe:
  - CWE-601
vendor: discourse
product: discourse
affected:
  - 'discourse >= 2026.1.0, < 2026.1.3'
  - 'discourse >= 2026.2.0, < 2026.2.2'
  - discourse = 2026.3.0
patched:
  - discourse 2026.2.2
published: '2026-03-31'
updated: '2026-07-24'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-32113'
references:
  - url: >-
      https://github.com/discourse/discourse/commit/080408b93d00305b51d71f63f755f43fa601884d
    label: security-advisories@github.com
  - url: >-
      https://github.com/discourse/discourse/security/advisories/GHSA-378j-ccw4-4fwh
    label: security-advisories@github.com
  - url: 'https://meta.discourse.org/t/using-discourse-as-a-sso-provider/32974'
    label: security-advisories@github.com
  - url: >-
      https://meta.discourse.org/t/use-discourse-as-an-identity-provider-sso-discourseconnect/32974
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
epss: 0.00338
epssPercentile: 0.24391
ingestedAt: '2026-07-24T20:38:03.284Z'
---

## Overview

Discourse is an open-source discussion platform. From versions 2026.1.0-latest to before 2026.1.3, 2026.2.0-latest to before 2026.2.2, and 2026.3.0-latest to before 2026.3.0, the enter action in StaticController reads the sso_destination_url cookie and redirects to it with allow_other_host: true without validating the destination URL. While this cookie is normally set during legitimate DiscourseConnect Provider flows with cryptographically validated SSO payloads, cookies are client-controlled and can be set by attackers. This issue has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0.

## Affected

- `discourse >= 2026.1.0, < 2026.1.3`
- `discourse >= 2026.2.0, < 2026.2.2`
- `discourse = 2026.3.0`

## Remediation

Upgrade past the affected range:

- `discourse 2026.2.2`
