Vulnerability Details : CVE-2023-23621
Discourse is an open-source discussion platform. Prior to version 3.0.1 on the `stable` branch and version 3.1.0.beta2 on the `beta` and `tests-passed` branches, a malicious user can cause a regular expression denial of service using a carefully crafted user agent. This issue is patched in version 3.0.1 on the `stable` branch and version 3.1.0.beta2 on the `beta` and `tests-passed` branches. There are no known workarounds.
Vulnerability category: Denial of service
Products affected by CVE-2023-23621
- 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:*:*:*
- cpe:2.3:a:discourse:discourse:3.1.0:beta1:*:*:beta:*:*:*
- cpe:2.3:a:discourse:discourse:3.0.0:beta16:*:*:beta:*:*:*
Exploit prediction scoring system (EPSS) score for CVE-2023-23621
0.12%
Probability of exploitation activity in the next 30 days
EPSS Score History
~ 47 %
Percentile, the proportion of vulnerabilities that are scored at or less
CVSS scores for CVE-2023-23621
Base Score | Base Severity | CVSS Vector | Exploitability Score | Impact Score | Score Source | First Seen |
---|---|---|---|---|---|---|
7.5
|
HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
3.9
|
3.6
|
NIST | |
8.6
|
HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H |
3.9
|
4.0
|
GitHub, Inc. |
CWE ids for CVE-2023-23621
-
The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles.Assigned by:
- nvd@nist.gov (Primary)
- security-advisories@github.com (Secondary)
References for CVE-2023-23621
-
https://github.com/discourse/discourse/commit/6d92c3cbdac431db99a450f360a3048bb3aaf458
SECURITY: Prevent ReDoS in user agent parsing (#20002) · discourse/discourse@6d92c3c · GitHubPatch
-
https://github.com/discourse/discourse/security/advisories/GHSA-mrfp-54hf-jrcv
ReDoS in user agent parsing · Advisory · discourse/discourse · GitHubThird Party Advisory
-
https://github.com/discourse/discourse/pull/20002
SECURITY: Prevent ReDoS in user agent parsing by nbianca · Pull Request #20002 · discourse/discourse · GitHubIssue Tracking;Patch
Jump to