Dify
CVE-2025-63386
CRITICAL
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure Dify operator to malicious page
-
ExploitBrowser sends credentialed CORS request to /console/api/setup
-
ImpactRead reflected setup-status response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
|
| Exploitation Conditions | Exploitation targets the /console/api/setup endpoint, which reflects any Origin header and returns Access-Control-Allow-Credentials: true, allowing an arbitrary external site to issue credentialed cross-origin requests. Realistic exploitation requires a victim operator's browser to visit an attacker-controlled page (user interaction), and the exposed data is limited to first-time bootstrap/setup status. Per the vendor, the endpoint is unauthenticated by design only in SELF_HOSTED deployment mode and is protected by one-time setup guards and init-password validation, so the meaningful window is the pre-setup bootstrap phase; after initial setup completes, the one-time guards sharply limit any initialization abuse. These factors substantially reduce real-world risk below the raw 9.1 score. |
| Impact | The input lists a CVSS 3.1 base score of 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N), which rates this as critical with full confidentiality and integrity impact over the network with no privileges or user interaction. That rating is almost certainly inflated for a CWE-346 CORS misconfiguration: a reflected-origin + Access-Control-Allow-Credentials flaw is only exploitable when a victim's browser is lured to an attacker page, which in practice requires user interaction (not UI:N as scored), and the affected /console/api/setup endpoint exposes only first-time bootstrap/setup-status data rather than high-value secrets - so C:H/I:H overstates the real impact. Critically, the supplier formally DISPUTES this CVE: the referenced pull request (langgenius/dify#32224) does not patch the behavior but instead adds docstrings documenting that the endpoint is unauthenticated by design for bootstrap, gated by SELF_HOSTED deployment mode, one-time setup guards, and init-password validation. No EPSS score and no CISA KEV entry are present in the input, so there is no signal of active or probable exploitation; the two linked GitHub gists from the reporter appear to be proof-of-concept/write-up material. Net assessment: this is a high-CVSS-but-low-real-risk, vendor-disputed issue, not an operational priority - the CVSS network/no-interaction framing conflicts with both the CORS attack model (requires victim browser interaction) and the limited bootstrap-only data exposed; verify impact against the vendor's disputed position before acting. |
| Exploit ScenarioDerived | An attacker hosts a malicious web page and lures a Dify operator (during or shortly after first-time bootstrap) into visiting it; because the /console/api/setup endpoint reflects any Origin and allows credentials, the page issues a credentialed cross-origin request and reads the reflected setup-status response. Reporter-published gists appear to document the behavior as a proof of concept, but the data obtainable is limited to bootstrap/setup status and the vendor disputes that this constitutes a vulnerability. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Cross-origin information disclosure affects Dify v1.9.1's /console/api/setup endpoint, which reflects any Origin header with Access-Control-Allow-Credentials: true, permitting a malicious external site to issue credentialed requests and read bootstrap setup status from a victim operator's browser. The vendor disputes the finding, stating the endpoint's unauthenticated configuration is intentional for first-time bootstrap in SELF_HOSTED mode and protected by one-time setup guards and init-password validation; our independent assessment rates it CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N (low confidentiality, no integrity/availability) because exploitation requires user interaction and the exposed data is limited to pre-setup bootstrap status. No public exploit identified at time of analysis, no CISA KEV entry exists, and no vendor-released patch version is confirmed-PR 32224 only adds documentation notes.
RemediationAI
No vendor-released patch identified at time of analysis; the vendor disputes the vulnerability and states the configuration is intentional for first-time bootstrap. Upstream PR 32224 adds explanatory docstrings only and does not change CORS logic. For self-hosted Dify v1.9.1, complete initial setup immediately to close the pre-bootstrap window, and restrict network access to /console/api/setup using a reverse proxy or firewall so only trusted operator networks can reach it. As a compensating control, configure the reverse proxy to strip or validate Origin headers and enforce a strict Access-Control-Allow-Origin allowlist for console API endpoints; trade-off is that overly restrictive CORS may break legitimate frontend initialization during first-time setup, so the allowlist must include the trusted console origin. Monitor langgenius/dify discussions and PR 32224 for vendor updates, and consult the provided gists for researcher analysis. Do not rely on the raw 9.1 score; prioritize based on the assessed UI:R and confidentiality-only impact.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The underlying issue is a CORS origin validation error (CWE-346) in Dify's Python-based console API controller at api/controllers/console/setup.py. The endpoint /console/api/setup returns setup status and handles first-time admin account initialization. Its CORS policy reflects the request's Origin header into Access-Control-Allow-Origin while also setting Access-Control-Allow-Credentials: true, which lets a browser include credentials and expose responses to an arbitrary external origin. According to the vendor and the upstream PR 32224 diff, the endpoint is intentionally unauthenticated during first-time bootstrap in SELF_HOSTED mode, with access intended to be restricted by deployment mode, one-time setup guards, and init-password validation rather than session authentication. The CPE cpe:2.3:a:langgenius:dify:1.9.1:*:*:*:*:node.js:*:* identifies Dify 1.9.1; however, the backend is Python/Flask, so the node.js component tag may be inaccurate. Because exploitation requires a victim's browser to visit an attacker-controlled page (UI:R) and the exposed data is limited to bootstrap status (C:L, I:N, A:N), the raw 9.1 CVSS 3.1 score overstates real-world risk.
Know when Dify gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CORS theft requires a victim browser to visit an attacker page (UI:R); only bootstrap setup-status data leaks (C:L), and one-time setup guards prevent integrity impact (I:N).
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
A Cross-Origin Resource Sharing (CORS) misconfiguration vulnerability exists in Dify v1.9.1 in the /console/api/setup endpoint. The endpoint implements an insecure CORS policy that reflects any Origin header and enables Access-Control-Allow-Credentials: true, permitting arbitrary external domains to make authenticated requests. NOTE: the Supplier disputes this because the endpoint configuration is intentional to support bootstrap.
Executive ViewAI
Dify v1.9.1 self-hosted deployments face a limited cross-origin information disclosure affecting the bootstrap setup endpoint, which requires user interaction and exposes only pre-setup status. Although the CVE carries a critical severity label, the independently assessed impact is low confidentiality with no integrity or availability effect, no public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis. Leadership should prioritize inventory and mitigation of exposed instances but can treat this as a targeted reconnaissance risk rather than an immediate compromise vector.
Until a vendor patch is available, restrict /console/api/setup to trusted networks or VPN, complete first-time bootstrap promptly and block the endpoint afterward, use reverse proxy or WAF rules to reject cross-origin requests and prevent Access-Control-Allow-Credentials: true from being returned to untrusted origins, and monitor for anomalous Origin headers or setup-status access.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)NVD
Dify 1.9.1 permits unauthenticated remote GET requests to the /console/api/system-features console endpoint, letting ano
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
Path traversal in Dify versions 0 through 1.14.1 allows authenticated tenants to escape their authorized tenant path and
Cross-tenant authorization bypass in LangGenius Dify versions through 1.14.1 lets any logged-in editor reroute another t
A vulnerability in langgenius/dify v0.10.1 allows an attacker to take over any account, including administrator accounts
SQL injection in Dify's MyScale vector store backend (versions before 1.16.0-rc1) lets authenticated attackers execute a
Plaintext exposure of third-party service API keys in Dify prior to version 1.11.0 allows any authenticated non-administ
Cross-tenant document disclosure in Dify 1.14.1 and prior allows any authenticated user to read up to 3,000 characters o
langgenius/dify version v0.10.1 contains a vulnerability where there are no limits applied to the number of code guess a
In langgenius/dify v0.10.1, the `/forgot-password/resets` endpoint does not verify the password reset code, allowing an
Dify is an open-source LLM app development platform. Rated high severity (CVSS 7.6), this vulnerability is remotely expl
A stored cross-site scripting (XSS) vulnerability exists in langgenius/dify version latest, specifically in the chat log
NVD
CVE.org
EPSS
GitHub
Exploit-DB