{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "cpe": [
              "cpe:2.3:a:discourse:discourse:*:*:*:*:*:*:*:*",
              "cpe:2.3:a:discourse:discourse:2026.6.0:*:*:*:latest:*:*:*"
            ],
            "extracted_events": [
              {
                "introduced": "2026.1.0"
              },
              {
                "fixed": "2026.1.5"
              },
              {
                "introduced": "2026.4.0"
              },
              {
                "fixed": "2026.4.2"
              },
              {
                "introduced": "2026.5.0"
              },
              {
                "fixed": "2026.5.1"
              },
              {
                "introduced": "2026.6.0"
              },
              {
                "last_affected": "2026.6.0"
              }
            ],
            "source": [
              "CPE_RANGE",
              "CPE_STRING",
              "REFERENCES"
            ]
          },
          "events": [
            {
              "introduced": "322d3c0ac6a8f133b3f82875e9dbbe310f638c1b"
            },
            {
              "fixed": "c06899647d758493d95a5b301e573ffa3db1e878"
            },
            {
              "introduced": "fdd750d960e603415db62242eca3c30d68e366db"
            },
            {
              "fixed": "4bbdddfc6700ca23604242111d4fa0e00347af97"
            },
            {
              "introduced": "640840d818f4ee9375829ece0ef452923bb0c012"
            },
            {
              "fixed": "598586ccf2e046a25d4b54132e4e1feb47f24e98"
            },
            {
              "introduced": "06d03da34c4ed09ea59f917f045ba250d2b6320d"
            },
            {
              "fixed": "40de62cddadc65c328a1028ab999f3fa94adbfed"
            },
            {
              "fixed": "529e17d4d570a48972e7cf64720e5dd1fdf23ca8"
            },
            {
              "fixed": "d92973e51a46cf6dd20c71e6068e6769b67eea5b"
            },
            {
              "fixed": "daea5214d833eacbdd3b1a78d99eb14e9cabd915"
            },
            {
              "fixed": "06d03da34c4ed09ea59f917f045ba250d2b6320d"
            }
          ],
          "repo": "https://github.com/discourse/discourse",
          "type": "GIT"
        }
      ],
      "versions": [
        "2026.6.0"
      ]
    }
  ],
  "aliases": [
    "GHSA-wg5x-7f23-m3r5"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-79"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53963.json"
  },
  "details": "Discourse is an open-source discussion platform. Prior to 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5, a malicious second factor name on an attacker-controlled account was not escaped in the delete confirmation dialog, allowing stored cross-site scripting when an administrator impersonated that account. This issue is fixed in versions 2026.6.0, 2026.5.1, 2026.4.2, and 2026.1.5.",
  "id": "CVE-2026-53963",
  "modified": "2026-07-16T03:31:18.128663602Z",
  "published": "2026-07-09T22:05:46.329Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/discourse/discourse/releases/tag/v2026.1.5"
    },
    {
      "type": "WEB",
      "url": "https://github.com/discourse/discourse/releases/tag/v2026.4.2"
    },
    {
      "type": "WEB",
      "url": "https://github.com/discourse/discourse/releases/tag/v2026.5.1"
    },
    {
      "type": "WEB",
      "url": "https://github.com/discourse/discourse/releases/tag/v2026.6.0"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53963.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/discourse/discourse/security/advisories/GHSA-wg5x-7f23-m3r5"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-53963"
    },
    {
      "type": "FIX",
      "url": "https://github.com/discourse/discourse/commit/40de62cddadc65c328a1028ab999f3fa94adbfed"
    },
    {
      "type": "FIX",
      "url": "https://github.com/discourse/discourse/commit/529e17d4d570a48972e7cf64720e5dd1fdf23ca8"
    },
    {
      "type": "FIX",
      "url": "https://github.com/discourse/discourse/commit/d92973e51a46cf6dd20c71e6068e6769b67eea5b"
    },
    {
      "type": "FIX",
      "url": "https://github.com/discourse/discourse/commit/daea5214d833eacbdd3b1a78d99eb14e9cabd915"
    }
  ],
  "schema_version": "1.8.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Discourse: Stored-XSS in 2FA delete confirmation modal"
}