Discourse: Presence of read restricted topics may be leaked if tagged with a tag that is visible to all users
Discourse is an open-source discussion platform. Prior to version 3.0.1 of the `stable` branch and version 3.1.0.beta2 of the `beta` and `tests-passed` branches, the count of topics displayed for a tag is a count of all regular topics regardless of whether the topic is in a read restricted category or not. As a result, any users can technically poll a sensitive tag to determine if a new topic is created in a category which the user does not have excess to. In version 3.0.1 of the `stable` branch and version 3.1.0.beta2 of the `beta` and `tests-passed` branches, the count of topics displayed for a tag defaults to only counting regular topics which are not in read restricted categories. Staff users will continue to see a count of all topics regardless of the topic's category read restrictions.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2023-23622
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 17:50 UTC · Revision 1
Source evidence
Discourse: Presence of read restricted topics may be leaked if tagged with a tag that is visible to all users
core-osv · Original sourcePublished 17 Mar 2023, 14:17 UTC
Discourse is an open-source discussion platform. Prior to version 3.0.1 of the `stable` branch and version 3.1.0.beta2 of the `beta` and `tests-passed` branches, the count of topics displayed for a tag is a count of all regular topics regardless of whether the topic is in a read restricted category or not. As a result, any users can technically poll a sensitive tag to determine if a new topic is created in a category which the user does not have excess to. In version 3.0.1 of the `stable` branch and version 3.1.0.beta2 of the `beta` and `tests-passed` branches, the count of topics displayed for a tag defaults to only counting regular topics which are not in read restricted categories. Staff users will continue to see a count of all topics regardless of the topic's category read restrictions.
osv:CVE-2023-23622
Complete source record
{
"id": "7876159cda178d630b0d2e8bd4bc4a43721325929772113e26064454d9335fba",
"url": "https://osv.dev/vulnerability/CVE-2023-23622",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Discourse: Presence of read restricted topics may be leaked if tagged with a tag that is visible to all users",
"summary": "Discourse is an open-source discussion platform. Prior to version 3.0.1 of the `stable` branch and version 3.1.0.beta2 of the `beta` and `tests-passed` branches, the count of topics displayed for a tag is a count of all regular topics regardless of whether the topic is in a read restricted category or not. As a result, any users can technically poll a sensitive tag to determine if a new topic is created in a category which the user does not have excess to. In version 3.0.1 of the `stable` branch and version 3.1.0.beta2 of the `beta` and `tests-passed` branches, the count of topics displayed for a tag defaults to only counting regular topics which are not in read restricted categories. Staff users will continue to see a count of all topics regardless of the topic's category read restrictions.",
"evidence": "osv:CVE-2023-23622",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2023-23622",
"aliases": [
"BIT-discourse-2023-23622",
"CVE-2023-23622",
"GHSA-2wvr-4x7w-v795"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/discourse/discourse",
"type": "GIT",
"events": [
{
"introduced": "4571b10ee5a3c46249271b2870d6eaf37994460f"
},
{
"fixed": "105fee978d73b0ec23ff814a09d1c0c9ace95164"
},
{
"fixed": "ecb9aa5dba94741d9579f4f873f0675f48b4184f"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "stable < 3.0.1"
},
{
"last_affected": "stable < 3.0.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandaloneSingleVersion"
},
{
"range": [
{
"introduced": "beta < 3.1.0.beta2"
},
{
"last_affected": "beta < 3.1.0.beta2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandaloneSingleVersion"
},
{
"range": [
{
"introduced": "tests-passed < 3.1.0.beta2"
},
{
"last_affected": "tests-passed < 3.1.0.beta2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandaloneSingleVersion"
},
{
"range": [
{
"fixed": "105fee978d73b0ec23ff814a09d1c0c9ace95164"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "ecb9aa5dba94741d9579f4f873f0675f48b4184f"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"1.1.0-beta1",
"1.1.0-beta2",
"1.1.0-beta3",
"1.1.0-beta4",
"1.1.0-beta5",
"1.1.0-beta6",
"1.1.0-beta7",
"1.1.0-beta8",
"1.2.0-beta1",
"1.2.0-beta2",
"1.2.0-beta3",
"1.2.0-beta4",
"1.2.0-beta5",
"1.2.0-beta6",
"1.2.0-beta7",
"1.2.0-beta8",
"1.2.0-beta9",
"1.3.0-beta1",
"1.3.0-beta10",
"1.3.0-beta11",
"1.3.0-beta2",
"1.3.0-beta3",
"1.3.0-beta4",
"1.3.0-beta5",
"1.3.0-beta6",
"1.3.0-beta7",
"1.3.0-beta8",
"1.3.0-beta9",
"1.4.0-beta1",
"1.4.0-beta10",
"1.4.0-beta11",
"1.4.0-beta12",
"1.4.0-beta2",
"1.4.0-beta3",
"1.4.0-beta4",
"1.4.0-beta5",
"1.4.0-beta7",
"1.4.0-beta8",
"1.4.0-beta9",
"1.5.0-beta1",
"1.5.0-beta10",
"1.5.0-beta11",
"1.5.0-beta12",
"1.5.0-beta13",
"1.5.0-beta14",
"1.5.0-beta2",
"1.5.0-beta3",
"1.5.0-beta4",
"1.5.0-beta5",
"1.5.0-beta6",
"1.5.0-beta7",
"1.5.0-beta8",
"1.5.0-beta9",
"1.6.0-beta1",
"1.6.0-beta10",
"1.6.0-beta11",
"1.6.0-beta12",
"1.6.0-beta2",
"1.6.0-beta3",
"1.6.0-beta4",
"1.6.0-beta5",
"1.6.0-beta6",
"1.6.0-beta7",
"1.6.0-beta8",
"1.6.0-beta9",
"1.7.0-beta1",
"1.7.0-beta10",
"1.7.0-beta11",
"1.7.0-beta2",
"1.7.0-beta3",
"1.7.0-beta4",
"1.7.0-beta5",
"1.7.0-beta6",
"1.7.0-beta7",
"1.7.0-beta8",
"1.7.0-beta9",
"1.8.0-beta1",
"1.8.0-beta10",
"1.8.0-beta11",
"1.8.0-beta12",
"1.8.0-beta13",
"1.8.0-beta2",
"1.8.0-beta3",
"1.8.0-beta4",
"1.8.0-beta5",
"1.8.0-beta6",
"1.8.0-beta7",
"1.8.0-beta8",
"1.8.0-beta9",
"1.9.0-beta1",
"1.9.0-beta10",
"1.9.0-beta11",
"1.9.0-beta12",
"1.9.0-beta13",
"1.9.0-beta14",
"1.9.0-beta15",
"1.9.0-beta16",
"1.9.0-beta17",
"1.9.0-beta2",
"1.9.0-beta3",
"1.9.0-beta4",
"1.9.0-beta5",
"1.9.0-beta6",
"1.9.0-beta7",
"1.9.0-beta8",
"1.9.0-beta9",
"2.0.0-beta1",
"2.0.0-beta10",
"2.0.0-beta2",
"2.0.0-beta3",
"2.0.0-beta4",
"2.0.0-beta5",
"2.0.0-beta6",
"2.0.0-beta7",
"2.0.0-beta8",
"2.0.0-beta9",
"2.1.0-beta1",
"2.1.0-beta2",
"2.1.0-beta3",
"2.1.0-beta4",
"2.1.0-beta5",
"2.1.0-beta6",
"2.2.0-beta1",
"2.2.0-beta10",
"2.2.0-beta2",
"2.2.0-beta3",
"2.2.0-beta4",
"2.2.0-beta5",
"2.2.0-beta6",
"2.2.0-beta7",
"2.2.0-beta8",
"2.2.0-beta9",
"2.3.0-beta1",
"2.3.0-beta10",
"2.3.0-beta11",
"2.3.0-beta2",
"2.3.0-beta3",
"2.3.0-beta4",
"2.3.0-beta5",
"2.3.0-beta6",
"2.3.0-beta7",
"2.3.0-beta8",
"2.3.0-beta9",
"2.4.0-beta1",
"2.4.0-beta10",
"2.4.0-beta11",
"2.4.0-beta2",
"2.4.0-beta3",
"2.4.0-beta4",
"2.4.0-beta5",
"2.4.0-beta6",
"2.4.0-beta7",
"2.4.0-beta8",
"2.4.0-beta9",
"2.5.0-beta1",
"2.5.0-beta2",
"2.5.0-beta3",
"2.5.0-beta4",
"2.5.0-beta5",
"2.5.0-beta6",
"2.5.0-beta7",
"2.6.0-beta1",
"2.6.0-beta2",
"2.6.0-beta3",
"2.6.0-beta4",
"2.6.0-beta5",
"2.6.0-beta6",
"2.7.0-beta1",
"2.7.0-beta2",
"2.7.0-beta3",
"2.7.0-beta4",
"2.7.0-beta5",
"2.7.0-beta6",
"2.7.0-beta7",
"2.7.0-beta8",
"2.7.0-beta9",
"2.8.0-beta1",
"2.8.0-beta10",
"2.8.0-beta11",
"2.8.0-beta2",
"2.8.0-beta3",
"2.8.0-beta4",
"2.8.0-beta5",
"2.8.0-beta6",
"2.8.0-beta7",
"2.8.0-beta8",
"2.8.0-beta9",
"2.9.0-beta1",
"2.9.0-beta10",
"2.9.0-beta11",
"2.9.0-beta12",
"2.9.0-beta13",
"2.9.0-beta14",
"2.9.0-beta2",
"2.9.0-beta3",
"2.9.0-beta4",
"2.9.0-beta5",
"2.9.0-beta6",
"2.9.0-beta7",
"2.9.0-beta8",
"2.9.0-beta9",
"3.0.0-beta15",
"3.0.0-beta16",
"beta < 3.1.0.beta2",
"stable < 3.0.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-23622.json"
}
}
],
"modified": "2026-10-28T02:30:31.250282853Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/23xxx/CVE-2023-23622.json",
"https://github.com/discourse/discourse/security/advisories/GHSA-2wvr-4x7w-v795",
"https://nvd.nist.gov/vuln/detail/CVE-2023-23622",
"https://github.com/discourse/discourse/commit/105fee978d73b0ec23ff814a09d1c0c9ace95164",
"https://github.com/discourse/discourse/commit/ecb9aa5dba94741d9579f4f873f0675f48b4184f",
"https://github.com/discourse/discourse/pull/20004",
"https://github.com/discourse/discourse/pull/20005"
],
"provider_metadata": {
"cwe_ids": [
"CWE-200"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/23xxx/CVE-2023-23622.json"
}
},
"related_cves": [
{
"value": "CVE-2023-23622",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 498024,
"published_at": "2023-03-17T14:17:17.427+00:00"
}