/Vulnerability Library

Dify <=1.14.1 - Unauthenticated Plugin Daemon Path Traversal

CVE-2026-41948
Verified

Description

Dify version 1.14.1 and prior are affected by an unauthenticated path traversal in the Plugin Daemon icon proxy endpoint. The /console/api/workspaces/current/plugin/icon endpoint requires no authentication and passes the filename query parameter unsanitized into the internal Plugin Daemon REST API URL. Using ../ dot-sequence traversal an attacker escapes the authorized plugin/{tenant_id}/asset/ namespace and reaches arbitrary internal Plugin Daemon endpoints. The /health/check endpoint is always available and returns Plugin Daemon version, build time and pool status confirming exploitation.

Severity

Critical

CVSS Score

9.4

Exploit Probability

2%

Affected Product

dify

Published Date

September 14, 2026

Template Author

dhiyaneshdk

CVE-2026-41948.yaml
9.4Score

CVSS Metrics

CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
CVE ID:
cve-2026-41948
CWE ID:
cwe-23

References

https://nvd.nist.gov/vuln/detail/CVE-2026-41948https://www.zafran.io/resources/difytap-zafran-discovers-how-attackers-can-silently-wiretap-ai-data-across-tenants-on-a-platform-powering-1m-appshttps://huntr.com/bounties/35b7ad59-e35d-443f-bf77-387bfb932ec0https://github.com/langgenius/dify/pull/35796https://osv.dev/vulnerability/CVE-2026-41948https://www.vulncheck.com/advisories/dify-path-traversal-via-plugin-daemon-internal-api-access

Remediation Steps

Upgrade to Dify 1.15.0 or later. The fix in api/core/plugin/impl/base.py (BasePluginClient._prepare_request) URL-decodes the path and raises ValueError on any segment containing .. or %2e%2e, preventing path traversal sequences from being forwarded to the Plugin Daemon.