@eeacms/volto-chatbot: Unauthenticated Danswer API Confused Deputy Proxy
An unauthenticated Express middleware vulnerability in @eeacms/volto-chatbot allows remote attackers to proxy requests to the Danswer API using the server’s own privileged service credentials.
Triage facts
Revision 1- Applicability
- @eeacms/volto-chatbot (2.0.3)
- Evidence
- Unknown
- Severity
- High
- Action
- Immediate escalation
- Sources
- 1 public source
- Freshness
- Revision 1Oct 29, 18:37 UTC
- Source quality
- A1Likely
The @eeacms/volto-chatbot package contains a configuration issue in its Express middleware that exposes an unauthenticated proxy to the Danswer API. The vulnerability (CWE-862) resides in the /_v1_da/ route, which forwards requests to the configured DANSWER_URL without performing authorization checks or path validation. When the add-on is configured with DANSWER_API_KEY or session cookies, the middleware silently attaches these credentials to requests. An unauthenticated attacker can control the destination path and HTTP method, effectively acting as the service account to perform unauthorized actions against the Danswer backend.
Attack Chain
- The attacker identifies an instance of
@eeacms/volto-chatbotaccessible over the network. - The attacker sends a crafted, unauthenticated HTTP request to the
/_v1_da/endpoint on the Volto server. - The
proxyMiddlewareintercepts the request without requiring authentication or session validation. - The middleware extracts the attacker-supplied path from the request URL.
- The middleware constructs an upstream URL by appending the attacker's path to the configured
DANSWER_URL. - The middleware silently attaches the server-side
DANSWER_API_KEYor session cookie to the outbound request headers. - The middleware forwards the request to the Danswer API, which processes the action as a privileged command from the service account.
Impact
Successful exploitation allows unauthenticated attackers to perform actions as the Danswer service account. Depending on the service account's permissions, this may lead to the unauthorized disclosure of sensitive documents and conversation history, or the mutation of system state, such as deleting users or creating chat sessions.
Recommendation
- Upgrade
@eeacms/volto-chatbotto a patched version once released by the maintainers. - If a patch is unavailable, immediately restrict network access to the Volto server to trusted internal segments.
- Implement a Web Application Firewall (WAF) rule to block all requests to the
/_v1_da/path. - Audit Danswer API access logs for requests originating from the Volto server IP address with suspicious or administrative paths (e.g.,
/admin/).
Immediate actions
Block all incoming traffic to /_v1_da/ at the perimeter or host firewall
Threat Hunt
Search Danswer backend logs for unexpected requests sourced from the Volto server IP
Data: Danswer backend webserver access logs
Mitigations
Restrict network exposure and wait for patched version
@eeacms/volto-chatbot