Vulnerability Details : CVE-2023-22454
Discourse is an option source discussion platform. Prior to version 2.8.14 on the `stable` branch and version 3.0.0.beta16 on the `beta` and `tests-passed` branches, pending post titles can be used for cross-site scripting attacks. Pending posts can be created by unprivileged users when a category has the "require moderator approval of all new topics" setting set. This vulnerability can lead to a full XSS on sites which have modified or disabled Discourse’s default Content Security Policy. A patch is available in versions 2.8.14 and 3.0.0.beta16.
Vulnerability category: Cross site scripting (XSS)
Products affected by CVE-2023-22454
- cpe:2.3:a:discourse:discourse:*:*:*:*:stable:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta6b:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.1.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.2.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.3.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta12:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.4.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta12:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta13:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta13b:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta14:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.5.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta12:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.6.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.7.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta12:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta13:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.8.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta12:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta13:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta14:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta15:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta16:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta17:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:1.9.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.0.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.1.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.1.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.1.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.1.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.1.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.1.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.2.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.3.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.4.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.5.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.5.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.5.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.5.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.5.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.5.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.5.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.6.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.6.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.6.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.6.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.6.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.6.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.7.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.8.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta10:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta11:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta12:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta13:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta14:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta2:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta3:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta4:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta5:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta6:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta7:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta8:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:2.9.0:beta9:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:3.0.0:beta15:*:*:beta:*:*:*
Exploit prediction scoring system (EPSS) score for CVE-2023-22454
0.06%
Probability of exploitation activity in the next 30 days
EPSS Score History
~ 27 %
Percentile, the proportion of vulnerabilities that are scored at or less
CVSS scores for CVE-2023-22454
Base Score | Base Severity | CVSS Vector | Exploitability Score | Impact Score | Score Source | First Seen |
---|---|---|---|---|---|---|
6.1
|
MEDIUM | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
2.8
|
2.7
|
NIST | |
8.0
|
HIGH | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H |
2.1
|
5.9
|
GitHub, Inc. |
CWE ids for CVE-2023-22454
-
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.Assigned by: security-advisories@github.com (Primary)
References for CVE-2023-22454
-
https://github.com/discourse/discourse/commit/c0e2d7badac276d82a4056a994b48d68a8993a12
SECURITY: Sanitize PendingPost titles before rendering to prevent XSS… · discourse/discourse@c0e2d7b · GitHubPatch;Third Party Advisory
-
https://github.com/discourse/discourse/security/advisories/GHSA-ggq4-4qxc-c462
Third Party Advisory
Jump to