CVE-2021-43840 json
Path traversal in message_bus
published 2021-12-17 4 y ago modified 2026-07-08 4 mo ago also GHSA-xmgj-5fh3-xjmm , EUVD-2021-2612
- cvss
- 4.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.9%
- EPSS 1.9% chance of exploitation in 30 days, percentile 80%
- public exploits
- 0
- none known
Summary
message_bus is a messaging bus for Ruby processes and web clients. In versions prior to 3.3.7 users who deployed message bus with diagnostics features enabled (default off) are vulnerable to a path traversal bug, which could lead to disclosure of secret information on a machine if an unintended user were to gain access to the diagnostic route. The impact is also greater if there is no proxy for your web application as the number of steps up the directories is not bounded. For deployments which uses a proxy, the impact varies. For example, If a request goes through a proxy like Nginx with `merge_slashes` enabled, the number of steps up the directories that can be read is limited to 3 levels. This issue has been patched in version 3.3.7. Users unable to upgrade should ensure that MessageBus::Diagnostics is disabled.
Patch / fix
- rubygems message_bus 3.3.7
- discourse message_bus 3.3.7
Exploit prediction
1.95% chance of exploitation in the next 30 days, higher than 80% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.4 | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N |
| NVD | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| NVD | 2.0 | 3.5 | AV:N/AC:M/Au:S/C:P/I:N/A:N |
| GitHub | 3.1 | 4.2 | CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | message_bus | <3.3.7 |
3.3.7 |
Affected products
- discourse message_bus
Classification
- Weakness
-
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory
References
-
github.com
/discourse/message_bus/commit/9b6deee01ed474c7e9b5ff65a06bb0447b4db2ba
web, patch, third-party-advisory
-
github.com
/discourse/message_bus/security/advisories/GHSA-xmgj-5fh3-xjmm
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-43840
advisory
-
github.com
/discourse/message_bus
package
-
github.com
/rubysec/ruby-advisory-db/blob/master/gems/message_bus/CVE-2021-43840.yml
web
Sources
- CVE List CVE-2021-43840
- GitHub Advisory GHSA-xmgj-5fh3-xjmm
- NVD CVE-2021-43840
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.