Skip to content
Heist/ feed
Back to feed
Medium

Discourse: Open redirect via `sso_destination_url` cookie in `enter`

Type: advisorySources: OSV

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.

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

Source evidence

Discourse: Open redirect via `sso_destination_url` cookie in `enter`

core-osv · Original source

Published 31 Mar 2026, 17:39 UTC

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.

osv:CVE-2026-32113
Complete source record
{
  "id": "91a21d1d83260ecc293ac7535844e5e413bc3ede8622fbc0c68c091d4955d87c",
  "url": "https://osv.dev/vulnerability/CVE-2026-32113",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Discourse: Open redirect via `sso_destination_url` cookie in `enter`",
    "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_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.",
    "evidence": "osv:CVE-2026-32113",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-32113",
      "aliases": [
        "BIT-discourse-2026-32113",
        "CVE-2026-32113",
        "GHSA-378j-ccw4-4fwh"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/discourse/discourse",
              "type": "GIT",
              "events": [
                {
                  "introduced": "322d3c0ac6a8f133b3f82875e9dbbe310f638c1b"
                },
                {
                  "fixed": "b3f024ce9587e678216892cbd967201b2450e197"
                },
                {
                  "introduced": "f7cec86997edc21d6074ceb7666f7e2e6e1b1fdf"
                },
                {
                  "fixed": "4431801e7b5af883edb430643fdace7608ffb6fb"
                },
                {
                  "introduced": "896e810e1b296478bba91559a8fc89a9926f11fe"
                },
                {
                  "fixed": "080408b93d00305b51d71f63f755f43fa601884d"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:discourse:discourse:*:*:*:*:latest:*:*:*",
                    "range": [
                      {
                        "introduced": "2026.1.0"
                      },
                      {
                        "fixed": "2026.1.3"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:discourse:discourse:*:*:*:*:latest:*:*:*",
                    "range": [
                      {
                        "introduced": "2026.2.0"
                      },
                      {
                        "fixed": "2026.2.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:discourse:discourse:2026.3.0:*:*:*:latest:*:*:*",
                    "range": [
                      {
                        "introduced": "2026.3.0"
                      },
                      {
                        "last_affected": "2026.3.0"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:discourse:discourse:2026.3.0:*:*:*:latest.1:*:*:*",
                    "range": [
                      {
                        "introduced": "2026.3.0"
                      },
                      {
                        "last_affected": "2026.3.0"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "range": [
                      {
                        "fixed": "080408b93d00305b51d71f63f755f43fa601884d"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "2026.3.0",
            "v2026.1.2",
            "v2026.2.1",
            "v2026.3.0-latest.1",
            "v2026.1.1",
            "v2026.2.0",
            "v2026.3.0-latest",
            "v2026.1.0",
            "stable",
            "esr",
            "v2026.2.0-latest",
            "v2026.1.0-latest"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-32113.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.881358796Z",
      "provider": "osv",
      "references": [
        "https://meta.discourse.org/t/using-discourse-as-a-sso-provider/32974",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32113.json",
        "https://github.com/discourse/discourse/security/advisories/GHSA-378j-ccw4-4fwh",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-32113",
        "https://github.com/discourse/discourse/commit/080408b93d00305b51d71f63f755f43fa601884d",
        "https://meta.discourse.org/t/use-discourse-as-an-identity-provider-sso-discourseconnect/32974"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-601"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32113.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-32113",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 493230,
  "published_at": "2026-03-31T17:39:25.82+00:00"
}