Skip to main content

Dify CVE-2026-105762

HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-05 GitHub_M
8.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed Dify console endpoint
  2. Delivery
    POST crafted internal/metadata URL
  3. Exploit
    Server fetches attacker-controlled URL (SSRF)
  4. Execution
    Return internal response data
  5. Impact
    Pivot to internal services / harvest cloud credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

No special conditions beyond network reachability - the pre-1.13.0 /console/api/remote-files/upload (POST) and /remote-files/<path:url> (GET) endpoints accepted an attacker-controlled URL with NO authentication (PR:N confirmed by the added @login_required in the fix), so a remote unauthenticated attacker can trigger the server-side fetch against default configurations. The practical LIMITING factor is Dify's existing ssrf_proxy wrapper, which may filter internal/metadata targets depending on its allowlist configuration; exploitation impact also depends on the instance being network-exposed to the attacker and on internal services/cloud metadata being reachable from the Dify host.

Impact

This is a genuine, actionable SSRF (CWE-918) rather than a paper-high score. The provided CVSS:3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L, base 8.3) indicates network-reachable, low-complexity, unauthenticated exploitation with a scope change, and the source-code evidence corroborates this directly: the fixing PR (#32236) adds @login_required to the previously anonymous /console/api/remote-files/upload and /remote-files/<path:url> handlers, confirming the pre-1.13.0 endpoints performed server-side fetches of attacker-supplied URLs with no authentication. The scope change (S:C) is well-justified because the server can be coerced into reaching internal-only services and cloud metadata endpoints - a different security authority than the Dify app itself. Countervailing signals temper urgency: no EPSS score, no CISA KEV listing, and no public POC were supplied, so there is no evidence of active exploitation or mass scanning yet. Note also that Dify already routes these requests through an 'ssrf_proxy' helper, meaning the residual risk depends on how robust that proxy's allowlist/deny-internal logic is - the primary defect fixed was the missing authentication gate, not the fetch mechanism itself. Net: prioritize patching to 1.13.0 for internet-exposed Dify instances (unauthenticated + scope change is a classic pivot primitive), but absent EPSS/KEV/POC this is an elevated-not-emergency item.

Exploit ScenarioDerived

An attacker who can reach an internet-exposed Dify instance sends an unauthenticated POST to /console/api/remote-files/upload with a URL pointing at an internal service or the cloud metadata endpoint (e.g. 169.254.169.254). The Dify server fetches that URL and returns metadata/content, letting the attacker enumerate internal hosts or harvest cloud instance credentials and use the server as a network pivot. No public exploit identified at time of analysis, though the single-request nature and low complexity (AC:L) make exploitation trivial to script.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 05, 2026

Server-side request forgery in Dify (LangGenius) before 1.13.0 allows unauthenticated remote attackers to make the Dify server fetch attacker-supplied URLs through the /console/api/remote-files/upload (POST) and /remote-files/<path:url> (GET) endpoints, turning the instance into a network pivot against internal services and cloud metadata endpoints. Rated CVSS 3.1 8.3 (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L), the issue is unauthenticated by design - the fix adds @login_required - but practical exploitability is bounded by Dify's existing ssrf_proxy wrapper, which may filter internal or metadata targets depending on allowlist configuration. No public exploit code identified at time of analysis and no confirmed active exploitation; a vendor-released patch (1.13.0) is available.

RemediationAI

Upgrade to Dify 1.13.0, the vendor-released patch version, which fixes the issue by rewriting the handlers in api/controllers/console/remote_files.py and adding @login_required to both the GET /remote-files/<path:url> and POST /remote-files/upload routes (commit 2f87ecc0ce1d05ab3ef9537f29b84a5fa5823017, PR 32236, release https://github.com/langgenius/dify/releases/tag/1.13.0). Refer to the vendor advisory GHSA-8235-vv5j-mmvg for the official guidance. If immediate upgrade is not possible, compensating controls should be applied with their trade-offs in mind: put the Dify console endpoints (/console/api/remote-files/* and /remote-files/*) behind an authenticating reverse proxy or IP allowlist so only trusted administrators can reach them - this restores the missing authorization boundary but breaks any unauthenticated integrations relying on those paths; and enforce strict outbound egress filtering from the Dify host (deny RFC1918 ranges, 169.254.169.254/link-local metadata, and other internal CIDRs) - this neutralizes the pivot to cloud metadata and internal services but will also block legitimate remote-file imports from internal networks. Tightening the ssrf_proxy allowlist configuration is a further hardening step, but note that pre-1.13.0 releases expose the endpoint with no authentication (PR:N), so mitigation should not rely on proxy filtering alone.

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 flaw is a classic server-side request forgery (CWE-918) rooted in Dify's remote-file import feature. In pre-1.13.0 code, the Flask/FastOpenAPI routes in api/controllers/console/remote_files.py (referenced in the advisory as the remote-files upload path) accepted a URL from the request payload/URL segment and passed it to the internal ssrf_proxy helper (a wrapper around httpx), which performed a HEAD followed by a GET with follow_redirects enabled and up to a 3-second timeout. Because the endpoints lacked @login_required - the diff for PR 32236 explicitly converts the FastOpenAPI handlers into Flask-RESTX Resource classes and adds login_required to both the GET /remote-files/<path:url> and POST /remote-files/upload handlers - any network-reachable client could drive outbound requests from the Dify host. The CPE cpe:2.3:a:langgenius:dify:*:*:*:*:*:*:*:* confirms the affected scope is all Dify releases prior to 1.13.0. The limited confidentiality/integrity/availability sub-scores (C:L/I:L/A:L) with a Changed scope (S:C) reflect that the primary consequence is metadata/internal-service disclosure and use of the server as a pivot rather than direct compromise of the Dify application itself.

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

Vendor (GitHub_M) PRIMARY 8.3 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
vuln.today AI 8.3 HIGH

Unauthenticated network endpoint (PR:N, confirmed by added login_required), trivial single request (AC:L), SSRF pivots to a separate security authority (S:C), with limited C/I/A to reachable internal services.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:L/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
Low

DescriptionCVE.org

Dify is an open-source LLM app development platform. Prior to 1.13.0, the /console/api/remote-files/upload endpoint in api/controllers/web/remote_files.py accepted an attacker-controlled URL without authentication and caused the Dify server to retrieve it. A remote attacker could use the endpoint to send requests to internal services or cloud metadata endpoints, potentially exposing sensitive data and using the server as a network pivot. This issue is fixed in version 1.13.0.

Technical POC Analysis

CWE-918 (Server-Side Request Forgery) in Dify's own Flask controller code at api/controllers/web/remotefiles.py, per the advisory Details section.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Dify (LangGenius), an open-source LLM application platform, is affected in releases before 1.13.0 by an unauthenticated server-side request forgery flaw that lets any party with network reach direct the server to fetch arbitrary attacker-supplied URLs. Because Dify deployments are typically connected to internal networks and cloud environments, a successful attack could convert the platform into a pivot point for reaching internal services and cloud metadata endpoints, placing credentials and data beyond Dify itself at risk. Leadership should treat any internet-facing Dify instance as a high-priority exposure and resource the upgrade accordingly.

Business Impact: High
Compensating Controls

Apply vendor patch (upgrade to Dify 1.13.0); confirm the exact fix version with the vendor given conflicting patch-status data, and in the interim restrict external access to the affected endpoints and enforce ssrf_proxy allowlisting.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Medium
popular open-source LLM app platform, moderate real-world production footprint
Data Quality
5 sources
Confidence: Medium
NVD CVE.org EPSS Vulnrichment GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)CVE.org

cpe:2.3:a:langgenius:dify:*:*:*:*:*:*:*:*

More in Dify

View all
CVE-2025-63387 HIGH POC
7.5 Dec 18

Dify 1.9.1 permits unauthenticated remote GET requests to the /console/api/system-features console endpoint, letting ano

CVE-2025-56157 CRITICAL POC
9.8 Dec 18

Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al

CVE-2026-41948 CRITICAL POC
9.3 May 18

Path traversal in Dify versions 0 through 1.14.1 allows authenticated tenants to escape their authorized tenant path and

CVE-2026-41947 CRITICAL POC
9.3 May 18

Cross-tenant authorization bypass in LangGenius Dify versions through 1.14.1 lets any logged-in editor reroute another t

CVE-2025-1796 HIGH POC
8.8 Mar 20

A vulnerability in langgenius/dify v0.10.1 allows an attacker to take over any account, including administrator accounts

CVE-2026-61461 HIGH POC
8.7 Jul 10

SQL injection in Dify's MyScale vector store backend (versions before 1.16.0-rc1) lets authenticated attackers execute a

CVE-2025-67732 HIGH POC
8.4 Jan 05

Plaintext exposure of third-party service API keys in Dify prior to version 1.11.0 allows any authenticated non-administ

CVE-2026-41949 HIGH POC
8.2 May 18

Cross-tenant document disclosure in Dify 1.14.1 and prior allows any authenticated user to read up to 3,000 characters o

CVE-2024-12039 HIGH POC
8.1 Mar 20

langgenius/dify version v0.10.1 contains a vulnerability where there are no limits applied to the number of code guess a

CVE-2024-12776 HIGH POC
8.1 Mar 20

In langgenius/dify v0.10.1, the `/forgot-password/resets` endpoint does not verify the password reset code, allowing an

CVE-2025-43862 HIGH POC
7.6 Apr 25

Dify is an open-source LLM app development platform. Rated high severity (CVSS 7.6), this vulnerability is remotely expl

CVE-2024-11824 HIGH POC
7.6 Mar 20

A stored cross-site scripting (XSS) vulnerability exists in langgenius/dify version latest, specifically in the chat log

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy