CVE-2025-63386 is a Critical severity (CVSS 9.1) CORS misconfiguration reported in Dify v1.9.1, on the /console/api/setup endpoint, which reflects any Origin and allows credentials. The supplier disputes it as intended behavior. No fixed version is listed, so review the advisory discussion and your own CORS settings.
The weakness is CWE-346, origin validation error. The Gold page for the CVE is CVE-2025-63386 on Gold.
What's affected
- Dify (langgenius) v1.9.1, endpoint /console/api/setup
- Fixed version: none listed in the record. The project has not announced a code fix for this CVE in the sources we reviewed.
Read the dispute before you act. The record carries this note: the supplier disputes the finding because the endpoint configuration is intentional to support bootstrap. A project pull request merged on 11 February 2026 describes the setup endpoint as required for system initialization, because no admin account exists yet during the initial bootstrap and the frontend must query setup progress before a login can be established.
That leaves a real source conflict. The CVE record scores the issue 9.1 and calls it a misconfiguration. The supplier says the behaviour is deliberate. Both statements can be true: the headers may be intended for one endpoint and still be risky if copied to others, or if an authenticated session is later added to the same route. We do not know how the score was derived beyond the record, so treat it as a prompt to review, not as proof of account takeover.
How to check if you're exposed
If you self host Dify, check how your instance answers a cross origin request. From a terminal, send a request that carries a made up Origin header to the endpoint on a test copy and read the response headers:
curl -s -I -H "Origin: https://example.invalid" https://YOUR-DIFY-HOST/console/api/setup
In the response, look at Access-Control-Allow-Origin and Access-Control-Allow-Credentials. If the first echoes your made up origin and the second says true, the instance behaves as the record describes. Run this only against systems you own.
Also check which version you run in the admin UI or your container tag, and whether a reverse proxy in front of Dify rewrites or overrides these headers.
What to do now
- Confirm your Dify version and whether the console is reachable from the internet. If it does not need to be, restrict it.
- Set CORS at your reverse proxy to an explicit allowlist of your own origins, and avoid combining credentials with a reflected origin.
- Read the project discussion linked below and watch the repository for a change in position on this CVE.
- Keep session cookies on the SameSite setting that fits your deployment, and require a strong admin login.
- Record in your risk register that the supplier disputes the finding, so a later audit sees the reasoning.
- Scan your dependencies and container images with the free in-browser dependency scan and keep the application on a current release.
Why it matters
Cross origin resource sharing relaxes the browser rule that stops one website from reading another's responses. Reflecting any origin while allowing credentials removes much of that protection for the endpoint in question. Whether that matters depends on what the endpoint returns. The setup endpoint in particular reports bootstrap progress, so by the project's own account it is meant to answer before any login exists.
The class of weakness is common, and disputed CVEs like this one are a good test of process. Check the facts, avoid both panic and dismissal, and fix what is cheap to fix. The CVE is not marked as known exploited in the record.
Quick check
Is this CVE confirmed by Dify?
No. The record says the supplier disputes it, and a merged pull request in the project documents the setup endpoint as unauthenticated by design. Review that discussion yourself.
Should I still tighten CORS?
It is a low cost step. An explicit origin allowlist is safer than reflecting every origin, whatever the final status of the CVE.
Sources
Other references listed in the CVE record (not independently fetched):
- https://gist.github.com/Cristliu/1610daac87c711ac3e0250c58f5cc4f9
- https://gist.github.com/Cristliu/8ad993126be05c9210c71cc7d49fa112
- https://github.com/langgenius/dify/discussions
Last reviewed: 18 October 2026.