GHSA-w9x9-j56r-h98r - @eeacms/volto-chatbot has Unauthenticated Danswer API Confused Deputy Proxy
## Unauthenticated Danswer API Confused Deputy Proxy in @eeacms/volto-chatbot
### Summary
`@eeacms/volto-chatbot` exposes an Express middleware route (`**/_v1_da/**`) that accepts unauthenticated HTTP requests from any network client and proxies them to the configured upstream Danswer API, automatically attaching the server-side service credentials (`DANSWER_API_KEY` or session cookie). Because no authorization check, path allowlist, or method restriction is applied before the upstream request is issued, an unauthenticated attacker can invoke arbitrary Danswer API operations โ including privileged admin endpoints โ as the configured service account. This is a classic Confused Deputy attack: the Volto proxy acts as a deputy that carries credentials on behalf of the attacker.
### Details
The vulnerability is introduced across two source files in `@eeacms/volto-chatbot@2.0.3`.
**Route registration (`src/index.js:15`):**
```js
middleware.all('**/_v1_da/**', proxyMiddleware);
```
The wildcard pattern matches every HTTP method and any sub-path, and no authentication middleware is chained before `proxyMiddleware`. This means all requests reaching any `/_v1_da/` path are forwarded without any identity check.
**Unvalidated path extraction and upstream URL construction (`src/middleware.js:228-230`):**
```js
const path = req.url.replace('/_v1_da/', '/');
const reqUrl = `${process.env.DANSWER_URL || ''}/api${path}`;
```
The attacker-controlled `req.url` is transformed into the upstream Danswer path with a simple string replace. There is no allowlist of permitted paths, no restriction on HTTP methods, and no validation of the resulting URL. The attacker therefore fully controls which Danswer endpoint is called and with which HTTP method.
**Credential attachment and forwarding (`src/middleware.js:164`, `src/middleware.js:169`, `src/middleware.js:202`):**
```js
// Session-cookie path (line 164):
headers = { Cookie: cached_auth_cookie, ... }
// API-key path (line 169):
HIGH
Severity & confidence
Source severityhigh
Platform severityhigh
Confidencemedium
Exploitationunknown
CVSS8.2
Affected
Vendors@eeacms
Products@eeacms/volto-chatbot
Reporting sources (1)
GitHub Security Advisories
Timeline & provenance
Published2026-10-29T16:35:48
Last updated2026-11-05T15:48:34
Ingested2026-10-29T16:43:21
FreshnessNEAR-REAL-TIME
Threat typeadvisory
Recommended action
Review the advisory and upgrade affected packages to the first patched version.
Next steps
- Identify affected systems in your environment.
- Apply the vendor patch or mitigation guidance.
- Review logs for indicators described in the advisory.
- Follow the affected vendor/product to track updates.
Confidence explanation
Reported by a single or secondary source; treat as indicative, verify before acting.
Source type: vendor ยท Original: GitHub Security Advisories