CVE-2026-26973

Source
https://cve.org/CVERecord?id=CVE-2026-26973
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-26973.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-26973
Aliases
Published
2026-02-26T19:19:18.139Z
Modified
2026-03-03T14:26:14.206617Z
Severity
  • 4.3 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N CVSS Calculator
Summary
Discourse doesn't scope reviewable notes to user-visible reviewables
Details

Discourse is an open source discussion platform. Versions prior to 2025.12.2, 2026.1.1, and 2026.2.0 have an IDOR (Insecure Direct Object Reference) in ReviewableNotesController. When enable_category_group_moderation is enabled, a user belonging to a category moderation group can create or delete their own notes on any reviewable in the system, including reviewables in categories they do not moderate. The controller used an unscoped Reviewable.find and the ensure_can_see guard only checked whether the user could access the review queue in general, not whether they could access the specific reviewable. Only instances with enable_category_group_moderation enabled are affected. Staff users (admins/moderators) are not impacted as they already have access to all reviewables. The issue is patched in versions 2025.12.2, 2026.1.1, and 2026.2.0 by scoping the reviewable lookup through Reviewable.viewable_by(current_user). As a workaround, disable the enable_category_group_moderation site setting. This removes the attack surface as only staff users will have access to the review queue.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/26xxx/CVE-2026-26973.json",
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-863"
    ]
}
References

Affected packages

Git / github.com/discourse/discourse

Affected ranges

Type
GIT
Repo
https://github.com/discourse/discourse
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Database specific
{
    "versions": [
        {
            "introduced": "0"
        },
        {
            "fixed": "2025.12.2"
        }
    ]
}
Type
GIT
Repo
https://github.com/discourse/discourse
Events
Database specific
{
    "versions": [
        {
            "introduced": "2026.1.0-latest"
        },
        {
            "fixed": "2026.1.1"
        }
    ]
}
Type
GIT
Repo
https://github.com/discourse/discourse
Events
Database specific
{
    "versions": [
        {
            "introduced": "2026.2.0-latest"
        },
        {
            "fixed": "2026.2.0"
        }
    ]
}

Affected versions

Other
beta
esr
latest-release
release
stable
v0.*
v0.8.0
v0.8.1
v0.8.2
v0.8.3
v0.8.4
v0.8.5
v0.8.6
v0.8.7
v0.8.8
v0.8.9
v0.9.0
v0.9.1
v0.9.2
v0.9.2.5
v0.9.2.6
v0.9.3
v0.9.3.5
v0.9.4
v0.9.5
v0.9.5.1
v0.9.5.2
v0.9.6
v0.9.6.1
v0.9.6.2
v0.9.6.3
v0.9.6.4
v0.9.7
v0.9.7.1
v0.9.7.2
v0.9.7.3
v0.9.7.4
v0.9.7.5
v0.9.7.6
v0.9.7.7
v0.9.7.8
v0.9.7.9
v0.9.8
v0.9.8.1
v0.9.8.10
v0.9.8.11
v0.9.8.2
v0.9.8.3
v0.9.8.4
v0.9.8.5
v0.9.8.6
v0.9.8.7
v0.9.8.8
v0.9.8.9
v0.9.9.1
v0.9.9.10
v0.9.9.11
v0.9.9.12
v0.9.9.13
v0.9.9.14
v0.9.9.15
v0.9.9.16
v0.9.9.17
v0.9.9.18
v0.9.9.2
v0.9.9.3
v0.9.9.4
v0.9.9.5
v0.9.9.6
v0.9.9.7
v0.9.9.8
v0.9.9.9
v1.*
v1.0.0
v1.1.0.beta2
v1.1.0.beta3
v1.1.0.beta4
v1.1.0.beta5
v1.1.0.beta6
v1.1.0.beta6b
v1.1.0.beta7
v1.1.0.beta8
v1.2.0.beta1
v1.2.0.beta2
v1.2.0.beta3
v1.2.0.beta4
v1.2.0.beta5
v1.2.0.beta6
v1.2.0.beta7
v1.2.0.beta8
v1.2.0.beta9
v1.3.0.beta1
v1.3.0.beta10
v1.3.0.beta11
v1.3.0.beta2
v1.3.0.beta3
v1.3.0.beta4
v1.3.0.beta5
v1.3.0.beta6
v1.3.0.beta7
v1.3.0.beta9
v1.4.0.beta1
v1.4.0.beta10
v1.4.0.beta11
v1.4.0.beta12
v1.4.0.beta2
v1.4.0.beta3
v1.4.0.beta4
v1.4.0.beta5
v1.4.0.beta6
v1.4.0.beta7
v1.4.0.beta8
v1.4.0.beta9
v1.5.0.beta1
v1.5.0.beta10
v1.5.0.beta11
v1.5.0.beta12
v1.5.0.beta13
v1.5.0.beta13b
v1.5.0.beta14
v1.5.0.beta2
v1.5.0.beta3
v1.5.0.beta4
v1.5.0.beta5
v1.5.0.beta6
v1.5.0.beta7
v1.5.0.beta8
v1.5.0.beta9
v1.6.0.beta1
v1.6.0.beta10
v1.6.0.beta11
v1.6.0.beta12
v1.6.0.beta2
v1.6.0.beta3
v1.6.0.beta4
v1.6.0.beta5
v1.6.0.beta6
v1.6.0.beta7
v1.6.0.beta8
v1.6.0.beta9
v1.7.0.beta1
v1.7.0.beta10
v1.7.0.beta11
v1.7.0.beta2
v1.7.0.beta3
v1.7.0.beta4
v1.7.0.beta5
v1.7.0.beta6
v1.7.0.beta7
v1.7.0.beta8
v1.7.0.beta9
v1.8.0.beta1
v1.8.0.beta10
v1.8.0.beta11
v1.8.0.beta12
v1.8.0.beta13
v1.8.0.beta2
v1.8.0.beta3
v1.8.0.beta4
v1.8.0.beta5
v1.8.0.beta6
v1.8.0.beta7
v1.8.0.beta8
v1.8.0.beta9
v1.9.0.beta1
v1.9.0.beta10
v1.9.0.beta11
v1.9.0.beta12
v1.9.0.beta13
v1.9.0.beta14
v1.9.0.beta15
v1.9.0.beta16
v1.9.0.beta17
v1.9.0.beta2
v1.9.0.beta3
v1.9.0.beta4
v1.9.0.beta5
v1.9.0.beta6
v1.9.0.beta7
v1.9.0.beta8
v1.9.0.beta9
v2.*
v2.0.0.beta1
v2.0.0.beta10
v2.0.0.beta2
v2.0.0.beta3
v2.0.0.beta4
v2.0.0.beta5
v2.0.0.beta6
v2.0.0.beta7
v2.0.0.beta8
v2.0.0.beta9
v2.1.0.beta1
v2.1.0.beta2
v2.1.0.beta3
v2.1.0.beta4
v2.1.0.beta5
v2.1.0.beta6
v2.2.0.beta1
v2.2.0.beta10
v2.2.0.beta2
v2.2.0.beta3
v2.2.0.beta4
v2.2.0.beta5
v2.2.0.beta6
v2.2.0.beta7
v2.2.0.beta8
v2.2.0.beta9
v2.3.0.beta1
v2.3.0.beta10
v2.3.0.beta11
v2.3.0.beta2
v2.3.0.beta3
v2.3.0.beta4
v2.3.0.beta5
v2.3.0.beta6
v2.3.0.beta7
v2.3.0.beta8
v2.3.0.beta9
v2.4.0.beta1
v2.4.0.beta10
v2.4.0.beta11
v2.4.0.beta2
v2.4.0.beta3
v2.4.0.beta4
v2.4.0.beta5
v2.4.0.beta6
v2.4.0.beta7
v2.4.0.beta8
v2.4.0.beta9
v2.5.0.beta1
v2.5.0.beta2
v2.5.0.beta3
v2.5.0.beta4
v2.5.0.beta5
v2.5.0.beta6
v2.5.0.beta7
v2.6.0.beta1
v2.6.0.beta2
v2.6.0.beta3
v2.6.0.beta4
v2.6.0.beta5
v2.6.0.beta6
v2.7.0.beta1
v2.7.0.beta2
v2.7.0.beta3
v2.7.0.beta4
v2.7.0.beta5
v2.7.0.beta6
v2.7.0.beta7
v2.7.0.beta8
v2.7.0.beta9
v2.8.0.beta1
v2.8.0.beta10
v2.8.0.beta11
v2.8.0.beta2
v2.8.0.beta3
v2.8.0.beta4
v2.8.0.beta5
v2.8.0.beta6
v2.8.0.beta7
v2.8.0.beta8
v2.8.0.beta9
v2.9.0.beta1
v2.9.0.beta10
v2.9.0.beta11
v2.9.0.beta12
v2.9.0.beta13
v2.9.0.beta14
v2.9.0.beta2
v2.9.0.beta3
v2.9.0.beta4
v2.9.0.beta5
v2.9.0.beta6
v2.9.0.beta7
v2.9.0.beta8
v2.9.0.beta9
v2025.*
v2025.12.0
v2025.12.0-latest
v2025.12.1
v2026.*
v2026.1.0
v2026.1.0-latest
v2026.2.0-latest
v3.*
v3.0.0.beta15
v3.0.0.beta16
v3.1.0.beta1
v3.1.0.beta2
v3.1.0.beta3
v3.1.0.beta4
v3.1.0.beta5
v3.1.0.beta6
v3.1.0.beta7
v3.1.0.beta8
v3.2.0.beta1
v3.2.0.beta2
v3.2.0.beta3
v3.2.0.beta4
v3.2.0.beta5
v3.3.0.beta1
v3.3.0.beta2
v3.3.0.beta3
v3.3.0.beta4
v3.3.0.beta5
v3.3.0.beta6
v3.4.0.beta1
v3.4.0.beta2
v3.4.0.beta3
v3.4.0.beta4
v3.5.0.beta1
v3.5.0.beta2
v3.5.0.beta3
v3.5.0.beta4
v3.5.0.beta5
v3.5.0.beta6
v3.5.0.beta7
v3.5.0.beta8
v3.5.0.beta9
v3.6.0.beta1
v3.6.0.beta2

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-26973.json"