Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Unauthenticated low-complexity network SSRF (PR:N/AC:L); scope changes as the server pivots to internal systems (S:C) with high confidentiality but no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
stoatchat before 0.13.5 contains an unauthenticated server-side request forgery vulnerability in the /proxy and /embed endpoints that accept arbitrary URLs without DNS resolution filtering or private IP range validation. Attackers can enumerate internal services, fingerprint applications, and reach instance metadata endpoints by supplying malicious URLs or leveraging redirect chains to access internal infrastructure.
AnalysisAI
Server-side request forgery in stoatchat before 0.13.5 allows remote unauthenticated attackers to coerce the server into making arbitrary outbound requests through the /proxy and /embed endpoints, which accept attacker-supplied URLs without DNS resolution filtering or private-IP validation. Reported by VulnCheck and carrying a CVSS 4.0 score of 9.2, it lets attackers enumerate internal services, fingerprint applications, and reach cloud instance-metadata endpoints. There is no public exploit identified at time of analysis and it is not listed in CISA KEV.
Technical ContextAI
stoatchat is an open-source chat application whose /proxy and /embed endpoints are designed to fetch remote content on behalf of clients (typically to render link previews/URL unfurling and to proxy external resources). The root cause is CWE-918 (Server-Side Request Forgery): the endpoints take a user-controlled URL and issue an outbound request without validating the resolved destination. Because there is no DNS-resolution filtering, the server will honor hostnames that resolve to internal/loopback/link-local addresses (e.g. 127.0.0.1, 10.0.0.0/8, 169.254.169.254), and because there is no private-IP range validation, redirect chains (an attacker-controlled public host that 30x-redirects to an internal target) can also bypass naive front-end checks. The affected component is identified by CPE cpe:2.3:a:stoatchat:stoatchat:*:*:*:*:*:*:*:*.
RemediationAI
Vendor-released patch: upgrade to stoatchat 0.13.5 or later, which is the primary and recommended fix, per the GitHub advisory GHSA-xhww-5g9p-vvq5 (https://github.com/stoatchat/stoatchat/security/advisories/GHSA-xhww-5g9p-vvq5) and the VulnCheck advisory (https://www.vulncheck.com/advisories/stoatchat-before-unauthenticated-ssrf-via-proxy-and-embed-endpoints). If immediate upgrade is not possible, restrict or disable the /proxy and /embed endpoints at a reverse proxy, which breaks link-preview/URL-unfurling functionality, and enforce egress filtering so the stoatchat host cannot reach internal RFC1918 ranges, loopback, link-local 169.254.0.0/16, and the cloud metadata endpoint 169.254.169.254 (side effect: legitimate internal fetches will also be blocked). On cloud instances, require IMDSv2 and disable IMDSv1 to blunt metadata theft even if SSRF succeeds. As defense-in-depth, add allowlist-based URL validation that resolves DNS and rejects private/reserved IPs and denies HTTP redirects to non-allowlisted hosts.
Denial of service in stoatchat (delta) versions before 20250210-1 (0.8.2) lets a remote unauthenticated attacker exhaust
Memory exhaustion denial of service in stoatchat before 0.15.0 allows unauthenticated remote attackers to crash the serv
Missing authorization in stoatchat's Subscribe message handler exposes private server membership data to any authenticat
Server-side request forgery in Stoatchat before 0.14.0 lets unauthenticated, network-accessible attackers reach internal
Webhook token disclosure in stoatchat (the Rust 'delta' backend of the Revolt/stoatchat platform) lets any channel membe
Permission bypass in stoatchat before 0.15.0 allows authenticated users holding only ViewChannel access to read individu
SSRF protection bypass in stoatchat before 0.15.0 exposes loopback-bound services to unauthenticated remote attackers th
Internal file disclosure in Stoat for Android allows any process capable of local intent dispatch to exfiltrate the app'
Same weakness CWE-918 – Server-Side Request Forgery (SSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-44915
GHSA-j5jq-jcvc-gxxc