First published: Thu Jan 05 2023(Updated: )
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.
Credit: security-advisories@github.com security-advisories@github.com
Affected Software | Affected Version | How to fix |
---|---|---|
Discourse | <2.8.14 | |
Discourse | =1.1.0-beta1 | |
Discourse | =1.1.0-beta2 | |
Discourse | =1.1.0-beta3 | |
Discourse | =1.1.0-beta4 | |
Discourse | =1.1.0-beta5 | |
Discourse | =1.1.0-beta6 | |
Discourse | =1.1.0-beta6b | |
Discourse | =1.1.0-beta7 | |
Discourse | =1.1.0-beta8 | |
Discourse | =1.2.0-beta1 | |
Discourse | =1.2.0-beta2 | |
Discourse | =1.2.0-beta3 | |
Discourse | =1.2.0-beta4 | |
Discourse | =1.2.0-beta5 | |
Discourse | =1.2.0-beta6 | |
Discourse | =1.2.0-beta7 | |
Discourse | =1.2.0-beta8 | |
Discourse | =1.2.0-beta9 | |
Discourse | =1.3.0-beta1 | |
Discourse | =1.3.0-beta10 | |
Discourse | =1.3.0-beta11 | |
Discourse | =1.3.0-beta2 | |
Discourse | =1.3.0-beta3 | |
Discourse | =1.3.0-beta4 | |
Discourse | =1.3.0-beta5 | |
Discourse | =1.3.0-beta6 | |
Discourse | =1.3.0-beta7 | |
Discourse | =1.3.0-beta8 | |
Discourse | =1.3.0-beta9 | |
Discourse | =1.4.0-beta1 | |
Discourse | =1.4.0-beta10 | |
Discourse | =1.4.0-beta11 | |
Discourse | =1.4.0-beta12 | |
Discourse | =1.4.0-beta2 | |
Discourse | =1.4.0-beta3 | |
Discourse | =1.4.0-beta4 | |
Discourse | =1.4.0-beta5 | |
Discourse | =1.4.0-beta6 | |
Discourse | =1.4.0-beta7 | |
Discourse | =1.4.0-beta8 | |
Discourse | =1.4.0-beta9 | |
Discourse | =1.5.0-beta1 | |
Discourse | =1.5.0-beta10 | |
Discourse | =1.5.0-beta11 | |
Discourse | =1.5.0-beta12 | |
Discourse | =1.5.0-beta13 | |
Discourse | =1.5.0-beta13b | |
Discourse | =1.5.0-beta14 | |
Discourse | =1.5.0-beta2 | |
Discourse | =1.5.0-beta3 | |
Discourse | =1.5.0-beta4 | |
Discourse | =1.5.0-beta5 | |
Discourse | =1.5.0-beta6 | |
Discourse | =1.5.0-beta7 | |
Discourse | =1.5.0-beta8 | |
Discourse | =1.5.0-beta9 | |
Discourse | =1.6.0-beta1 | |
Discourse | =1.6.0-beta10 | |
Discourse | =1.6.0-beta11 | |
Discourse | =1.6.0-beta12 | |
Discourse | =1.6.0-beta2 | |
Discourse | =1.6.0-beta3 | |
Discourse | =1.6.0-beta4 | |
Discourse | =1.6.0-beta5 | |
Discourse | =1.6.0-beta6 | |
Discourse | =1.6.0-beta7 | |
Discourse | =1.6.0-beta8 | |
Discourse | =1.6.0-beta9 | |
Discourse | =1.7.0-beta1 | |
Discourse | =1.7.0-beta10 | |
Discourse | =1.7.0-beta11 | |
Discourse | =1.7.0-beta2 | |
Discourse | =1.7.0-beta3 | |
Discourse | =1.7.0-beta4 | |
Discourse | =1.7.0-beta5 | |
Discourse | =1.7.0-beta6 | |
Discourse | =1.7.0-beta7 | |
Discourse | =1.7.0-beta8 | |
Discourse | =1.7.0-beta9 | |
Discourse | =1.8.0-beta1 | |
Discourse | =1.8.0-beta10 | |
Discourse | =1.8.0-beta11 | |
Discourse | =1.8.0-beta12 | |
Discourse | =1.8.0-beta13 | |
Discourse | =1.8.0-beta2 | |
Discourse | =1.8.0-beta3 | |
Discourse | =1.8.0-beta4 | |
Discourse | =1.8.0-beta5 | |
Discourse | =1.8.0-beta6 | |
Discourse | =1.8.0-beta7 | |
Discourse | =1.8.0-beta8 | |
Discourse | =1.8.0-beta9 | |
Discourse | =1.9.0-beta1 | |
Discourse | =1.9.0-beta10 | |
Discourse | =1.9.0-beta11 | |
Discourse | =1.9.0-beta12 | |
Discourse | =1.9.0-beta13 | |
Discourse | =1.9.0-beta14 | |
Discourse | =1.9.0-beta15 | |
Discourse | =1.9.0-beta16 | |
Discourse | =1.9.0-beta17 | |
Discourse | =1.9.0-beta2 | |
Discourse | =1.9.0-beta3 | |
Discourse | =1.9.0-beta4 | |
Discourse | =1.9.0-beta5 | |
Discourse | =1.9.0-beta6 | |
Discourse | =1.9.0-beta7 | |
Discourse | =1.9.0-beta8 | |
Discourse | =1.9.0-beta9 | |
Discourse | =2.0.0-beta1 | |
Discourse | =2.0.0-beta10 | |
Discourse | =2.0.0-beta2 | |
Discourse | =2.0.0-beta3 | |
Discourse | =2.0.0-beta4 | |
Discourse | =2.0.0-beta5 | |
Discourse | =2.0.0-beta6 | |
Discourse | =2.0.0-beta7 | |
Discourse | =2.0.0-beta8 | |
Discourse | =2.0.0-beta9 | |
Discourse | =2.1.0-beta1 | |
Discourse | =2.1.0-beta2 | |
Discourse | =2.1.0-beta3 | |
Discourse | =2.1.0-beta4 | |
Discourse | =2.1.0-beta5 | |
Discourse | =2.1.0-beta6 | |
Discourse | =2.2.0-beta1 | |
Discourse | =2.2.0-beta10 | |
Discourse | =2.2.0-beta2 | |
Discourse | =2.2.0-beta3 | |
Discourse | =2.2.0-beta4 | |
Discourse | =2.2.0-beta5 | |
Discourse | =2.2.0-beta6 | |
Discourse | =2.2.0-beta7 | |
Discourse | =2.2.0-beta8 | |
Discourse | =2.2.0-beta9 | |
Discourse | =2.3.0-beta1 | |
Discourse | =2.3.0-beta10 | |
Discourse | =2.3.0-beta11 | |
Discourse | =2.3.0-beta2 | |
Discourse | =2.3.0-beta3 | |
Discourse | =2.3.0-beta4 | |
Discourse | =2.3.0-beta5 | |
Discourse | =2.3.0-beta6 | |
Discourse | =2.3.0-beta7 | |
Discourse | =2.3.0-beta8 | |
Discourse | =2.3.0-beta9 | |
Discourse | =2.4.0-beta1 | |
Discourse | =2.4.0-beta10 | |
Discourse | =2.4.0-beta11 | |
Discourse | =2.4.0-beta2 | |
Discourse | =2.4.0-beta3 | |
Discourse | =2.4.0-beta4 | |
Discourse | =2.4.0-beta5 | |
Discourse | =2.4.0-beta6 | |
Discourse | =2.4.0-beta7 | |
Discourse | =2.4.0-beta8 | |
Discourse | =2.4.0-beta9 | |
Discourse | =2.5.0-beta1 | |
Discourse | =2.5.0-beta2 | |
Discourse | =2.5.0-beta3 | |
Discourse | =2.5.0-beta4 | |
Discourse | =2.5.0-beta5 | |
Discourse | =2.5.0-beta6 | |
Discourse | =2.5.0-beta7 | |
Discourse | =2.6.0-beta1 | |
Discourse | =2.6.0-beta2 | |
Discourse | =2.6.0-beta3 | |
Discourse | =2.6.0-beta4 | |
Discourse | =2.6.0-beta5 | |
Discourse | =2.6.0-beta6 | |
Discourse | =2.7.0-beta1 | |
Discourse | =2.7.0-beta2 | |
Discourse | =2.7.0-beta3 | |
Discourse | =2.7.0-beta4 | |
Discourse | =2.7.0-beta5 | |
Discourse | =2.7.0-beta6 | |
Discourse | =2.7.0-beta7 | |
Discourse | =2.7.0-beta8 | |
Discourse | =2.7.0-beta9 | |
Discourse | =2.8.0-beta1 | |
Discourse | =2.8.0-beta10 | |
Discourse | =2.8.0-beta11 | |
Discourse | =2.8.0-beta2 | |
Discourse | =2.8.0-beta3 | |
Discourse | =2.8.0-beta4 | |
Discourse | =2.8.0-beta5 | |
Discourse | =2.8.0-beta6 | |
Discourse | =2.8.0-beta7 | |
Discourse | =2.8.0-beta8 | |
Discourse | =2.8.0-beta9 | |
Discourse | =2.9.0-beta1 | |
Discourse | =2.9.0-beta10 | |
Discourse | =2.9.0-beta11 | |
Discourse | =2.9.0-beta12 | |
Discourse | =2.9.0-beta13 | |
Discourse | =2.9.0-beta14 | |
Discourse | =2.9.0-beta2 | |
Discourse | =2.9.0-beta3 | |
Discourse | =2.9.0-beta4 | |
Discourse | =2.9.0-beta5 | |
Discourse | =2.9.0-beta6 | |
Discourse | =2.9.0-beta7 | |
Discourse | =2.9.0-beta8 | |
Discourse | =2.9.0-beta9 | |
Discourse | =3.0.0-beta15 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2023-22454 is classified as a medium severity vulnerability due to its potential for cross-site scripting attacks.
To fix CVE-2023-22454, upgrade Discourse to version 2.8.14 or later on the stable branch, or 3.0.0.beta16 or later on the beta and tests-passed branches.
CVE-2023-22454 affects Discourse versions prior to 2.8.14 on the stable branch and 3.0.0.beta16 on the beta and tests-passed branches.
CVE-2023-22454 allows for cross-site scripting (XSS) attacks via unprivileged users creating malicious pending post titles.
Yes, unprivileged users can exploit CVE-2023-22454 by creating pending posts with malicious titles that may lead to XSS vulnerabilities.