Skip to main content

Release v3.12.1

· 8 min read

What Changed

15
New Features
Bug Fixes
Security: Plugin Installation Policy Could Be Bypassed by RetryingUnder a restricted Allowed Plugins policy, upgrading an already-installed plugin was rejected on the first attempt and succeeded on the second. The scope check ran only after the package had been fetched, so the first attempt populated a cache that the second attempt then used to skip validation entirely. Every install and upgrade path now validates the installation scope before the package is fetched.
Security: CVE Remediation Across Enterprise ImagesDependency updates and a Go toolchain bump across the enterprise images clear the advisories that could be remediated at build time, including Go standard library, go-git, gRPC and golang.org/x/text issues. A small number remain where no upstream fix has yet been published. The Security & CVE section below is generated from the release scan and lists the current per-image results.
Knowledge Base: Inconsistent Default Access When Created With a DocumentWith RBAC enabled, a knowledge base created together with its first document defaulted to private, while one created empty defaulted to "All members" — so the same action produced different access depending on how it was started. Both paths now default to "All members". Existing knowledge bases are unaffected.
Knowledge Base: External Knowledge Base Creation FailsConnecting an external knowledge base failed with "Missing dataset_id or pipeline_id in request path". The enterprise permission check required a knowledge base ID that cannot exist while one is being created. Creation now succeeds.
Agent: Attachments Dropped on Models Without Vision SupportFiles attached in the Agent preview were silently discarded before the request reached the agent whenever the selected model had no vision support. The upload appeared to succeed but the agent never received the file. Affected all file types, including spreadsheets, PDFs, and documents.
RBAC: Owner Role Displayed an Incomplete Permission ListThe workspace Owner rendered as holding 6 of 16 application permissions in the console. The Owner has always had full access — only the displayed permission set was wrong. All 16 are now listed.
Workspace: Ownership Transfer Could Leave Two OwnersTransferring workspace ownership appended the owner role to the recipient rather than replacing their existing roles, leaving them with a mix of roles. Transfers made through the admin API did not update RBAC at all, which could leave the previous owner still holding the owner role and block every later transfer. Both paths now leave exactly one owner.
Plugin Credentials: Fields Cleared When Switching Plugin VersionChanging the version of a configured credential plugin cleared every field in the form. Required fields had to be re-entered, and optional ones such as endpoint URL were lost on save without warning. Saved values are now preserved across a version switch.
Helm: Redis Connection String Exposed in ConfigMapsThe composed Redis connection string, which contains the password, was rendered as plaintext into the gateway Caddyfile ConfigMap and the enterprise collector ConfigMap. Both now read it from a Secret, keeping the credential out of anything that can read ConfigMaps and out of GitOps diffs.
Helm: Redis Usernames Containing URL Delimiters Failed to AuthenticateThe Celery broker URL encoded the password but not the username, so a username containing a character such as a colon, slash, hash, or question mark was misparsed — silently authenticating as a different user or as none at all. Usernames are now encoded correctly.
License: Expiry Badge Wording and Remaining DaysThe admin dashboard license badge now shows the days remaining directly instead of only on hover. In Japanese, an expiring license and an already-expired one both displayed as 期限切れ, making them indistinguishable; they now read differently and the remaining-days string renders as a proper sentence.
Observability: Continuous OpenTelemetry Context Detach ErrorsWith ENABLE_OTEL turned on, the API logged "Failed to detach context" continuously under concurrent load, caused by a known defect in the OpenTelemetry Flask instrumentation detaching the same context token twice. Requests were never affected; trace context is now recorded correctly and the log noise is gone.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
No migration or manual step is required — this release can be applied directly on top of 3.12.0
If your Redis username contains a colon, slash, hash, or question mark, it was previously misparsed; confirm the account it authenticates as after upgrading
On clusters that drop Linux capabilities, Code nodes need sandbox.securityContext with SYS_CHROOT added — see New Features
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.12.1

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.0 Critical · 31 High CVE across all container images
ScannerDocker Scout
Scanned
Aug 14, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
350.92
MIN
161
MAX
1679
P50
177
P90
497.6
P95
1031.1
Connections
Max Concurrent
18
Avg Active
17.5
Empty Workflow QPS
Max QPS
23.2
Avg QPS
20.6
Avg Duration (ms)
564.66

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.9.10

· 5 min read

What Changed

5
Bug Fixes
Form: Markdown form field names support more fullwidth charactersRemoved hard-coded punctuation from the field-name allowlist and added the self-hosted NEXT_PUBLIC_MARKDOWN_FORM_FIELD_NAME_EXTRA_CHARS setting so operators can opt in additional characters such as ()!*&-。.;;+=—. Also fixes a Streamdown issue where a stray trailing * was appended when form attributes contained punctuation. (ESQ1-226)
Form: Workspace custom brand logo ignored on human-input formThe HITL/form page hard-coded the Dify logo and ignored the workspace-configured "Powered by" brand image. It now reads the workspace branding configuration and renders the custom logo. (ESQ1-238)
Model: Credential fields cleared when switching model typesCredential schemas can reuse the same variable (e.g. context_size, video_support) across multiple model types. A stale timer from a hidden schema entry could delete the value used by the currently visible sibling, leaving fields empty after switching model types. Values are now preserved per visible schema and video_support consistently restores its default. (ESQ1-242)
OSS: Built-in object storage ignored HTTP Range, breaking plugin installs >5MBThe built-in object storage (server/pkg/oss, used when persistence.type != s3) ignored the Range header and always returned the full object. Kaniko downloads plugin build contexts via parallel ranged GETs (5MB parts), so every part received the full body and corrupted objects larger than one part — plugin installs >5MB failed with EOF. Single-range requests are now handled per RFC 9110 (206/416), restoring normal plugin installation. (ESQ1-234)
Security Notes
Security: CVEs from pip-vendored setuptools / msgpack are non-runtimeThe setuptools and msgpack CVEs flagged in this release's scan are introduced by the latest pip version as vendored dependencies. They cannot be fixed on our side without forking pip. They are not related to runtime behavior — pip does not import pip._vendor.setuptools at runtime. Per the pip maintainers (pypa/pip#14031): "A security issue in a vendored library does not necessarily represent a security issue in pip." These findings are accepted as non-actionable.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.10

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.0 Critical · 18 High CVE across all container images
ScannerDocker Scout
Scanned
Aug 13, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
148.5
MIN
119
MAX
571
P50
132
P90
160.1
P95
162
Connections
Max Concurrent
18
Avg Active
17.2
Empty Workflow QPS
Max QPS
41.4
Avg QPS
39.71
Avg Duration (ms)
154.89

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.12.0

· 5 min read

What Changed

7
New Features
Bug Fixes
Plugin Daemon: Fixed Declaration Cache Deadlock Causing Full Plugin OutageFixed a bug in the plugin declaration cache's eviction logic where a size-accounting drift could spin the eviction loop forever while holding its lock, blocking every plugin-related API call (install, list, credential validation) until the daemon was restarted.
Admin Console: RBAC Fixes for Owner Transfer & InvitationsFixed several admin console RBAC issues around workspace owner transfer and join/email invitation guards.
Plugin Management: Backend-Assigned Plugins Not VisibleFixed a bug where plugins assigned to a workspace from the admin backend did not appear when configuring credentials in that workspace until the plugin was also installed from the front end.
Security: CVE Dependency RemediationBumped vulnerable dependencies across components (starlette, soupsieve, cryptography, wandb, grpc, sharp) to close CVEs identified in the pre-release Docker Scout scan.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for the rolling update
This version cannot be skipped: it seeds a new agent.manage RBAC permission automatically on startup (no manual action needed)
If you plan to use Kubernetes Agent Sandbox, install the agent-sandbox controller and CRDs BEFORE upgrading, then set sandboxGateway.enabled: true (see Migration Notes) — otherwise the upgrade will fail creating SandboxTemplate/SandboxWarmPool resources
To lock down public webapp access, set enterprise.webappPublicAccessEnabled: false
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.12.0

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.2 Critical · 23 High CVE across all container images
ScannerDocker Scout
Scanned
Jul 31, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
171.42
MIN
152
MAX
194
P50
170.5
P90
185.5
P95
189.6
Connections
Max Concurrent
1
Avg Active
1
Empty Workflow QPS
Max QPS
42
Avg QPS
39.89
Avg Duration (ms)
221.52

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.9.9

· 4 min read

What Changed

4
Bug Fixes
Annotation Reply: remove 0.8 score threshold lower boundRemoved the arbitrary 0.8 lower-bound UI limit on the Annotation Reply score threshold, so the value can now be configured across the full 0.00–1.00 range as intended.
Datasource: API-key modal hidden behind settings panelFixed an incorrect z-index on the datasource API-key modal that caused it to be obscured by the settings panel. The modal now renders correctly above the panel.
Security Fixes
Security: SSRF bypass in API tool schema fetchThe API tool schema fetch endpoint used raw httpx.get() instead of ssrf_proxy.get(), bypassing the Squid SSRF proxy and allowing authenticated users to reach internal URLs (cloud metadata, Redis, Postgres). All fetches now route through the SSRF proxy. (GHSA-gfmc-xc6g-q7g2)
Security: CVE remediationRemediated one high-severity CVE (CVE-2026-40898) and two medium-severity CVEs (CVE-2026-6993, CVE-2026-41178) affecting the plugin-daemon, gateway, enterprise, and enterprise-audit images. See the Security CVE section below for detailed scan results.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.9

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.0 Critical · 0 High CVE across all container images
ScannerDocker Scout
Scanned
Jul 29, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
158.14
MIN
121
MAX
531
P50
141
P90
159.6
P95
189.8
Connections
Max Concurrent
12
Avg Active
10.7
Empty Workflow QPS
Max QPS
26.2
Avg QPS
25.02
Avg Duration (ms)
243.44

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.11.1

· 6 min read

What Changed

7
New Features
Bug Fixes
Security: SQL Injection HardeningHardened SQL query construction and added metadata key validation to close SQL injection vectors inherited from the Community Edition base.
Security: CVE Dependency RemediationBumped vulnerable dependencies (python-socketio, python-engineio, soupsieve) and upgraded the plugin-daemon Go builder to clear outstanding standard-library CVEs. See the Security & CVE section below for the full scan results.
RBAC: Editor Permission CorrectionsFixed several editor-role permission issues: editors no longer attempt member management, editors can now view application logs, and changing trace configuration now correctly requires edit access. A new app created by a member is now accessible by default to all members holding the corresponding role.
Plugin Management StabilityFixed integration marketplace install callbacks, debug-mode plugin permission settings that did not apply, plugin external user ID resolution in backwards invocations, and kept provider credential refreshes single-flight to avoid redundant work. Also enabled HTTP Range requests on the built-in object storage, fixing install failures for plugins larger than 5MB.
Workflow and API StabilityResolved "Working outside of application context" errors, corrected chunked workflow failure-tracking data, guarded against an infinite loop during batched record deletion, and wired a dedicated timeout into inner RBAC requests.
UI and Authentication FixesFixed main navigation item states, dataset creation layout height, app card overflow, dark-mode rendering with no plugins installed, the Human-in-the-Loop input save button visibility, toasts blocking page clicks, OAuth error display, a duplicated auth prefix, and broken pagination on the admin members page after filtering by group.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for the rolling update
If upgrading from a version earlier than 3.11.0: schedule a maintenance window — the RBAC migrations below are mandatory and the application is unusable until they complete (skip this entire block if you are already on 3.11.0)
Then run flask rbac-migrate-member-roles (mandatory from <3.11.0; members have no access until this finishes)
Then run flask rbac-migrate-dataset-permissions --apply (mandatory from <3.11.0; dataset access is incorrect under RBAC until this finishes)
Then run flask backfill-plugin-auto-upgrade (mandatory from <3.11.0) before restoring traffic
To enable Workflow Collaboration, set collaboration.enabled and deploy the websocket service (see Migration Notes)
Expect a brief reconnect of active workflow editing sessions during the rolling update
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.11.1

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.0 Critical · 14 High CVE across all container images
ScannerDocker Scout
Scanned
Jul 16, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
176.85
MIN
131
MAX
506
P50
153
P90
170.8
P95
305.6
Connections
Max Concurrent
3
Avg Active
2.9
Empty Workflow QPS
Max QPS
42.2
Avg QPS
38.84
Avg Duration (ms)
163.65

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.9.8

· 4 min read

What Changed

6
Bug Fixes
Web App: Form state lost during config refetchFixed an issue where shared WebApp content was unmounted during /site, /parameters, and /meta background refetches, causing user form input to be lost. The content now stays mounted during refetches.
UI: Streamdown table fullscreen missing stylesFixed missing background, borders, and text colors in streamdown table fullscreen mode. The fullscreen view now correctly applies Dify design tokens via CSS overrides.
Security Fixes
Security: Harden default SSRF proxy egressHardened Docker Compose SSRF proxy defaults by denying loopback, private, CGN, link-local, ULA, multicast, reserved, and cloud metadata target networks before general egress. Removed reliance on the Squid image packaged allow rules. Added SSRF_PROXY_ALLOW_PRIVATE_IPS and SSRF_PROXY_ALLOW_PRIVATE_DOMAINS escape hatches for trusted private-network deployments.
Security: Require trial app registration for readsTrial apps must now be registered before read access is granted, closing a gap where unregistered trial apps could be read without proper registration.
Security: Email normalization for member servicesAdded strict email normalization (latin-only, trim spaces, reject invalid formats) in enterprise member and admin-member services to prevent email-based access bypass.
Security: CVE remediationUpdated vulnerable dependencies where fixes are available. See the Security CVE section below for detailed scan results. Note: quick-xml (via upstream uv) and nltk still have no upstream fix available.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.8

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
No security vulnerabilities fixed in this release.0 Critical · 52 High CVE across all container images
ScannerDocker Scout
Scanned
Jul 27, 2026
Data Source
Docker
TTFE – Time To First Event (ms)
AVG
142.21
MIN
123
MAX
171
P50
140
P90
156.8
P95
160
Connections
Max Concurrent
11
Avg Active
9.7
Empty Workflow QPS
Max QPS
29.2
Avg QPS
26.99
Avg Duration (ms)
257.66

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.9.7

· 4 min read

What Changed

5
New Features
Bug Fixes
HTTP Request Node: SSL Verification Ignored with SSRF ProxyFixed a regression where disabling "Verify SSL certificate" on the HTTP Request node had no effect when SSRF proxy transports were configured. The verify setting now correctly propagates to per-scheme proxy transports.
Web App: User Avatar Displays Incorrect Black ColorFixed a bug where web app end-user avatars rendered as solid black instead of the correct color or image.
Chatflow: Form Fields with Chinese/Unicode Names DroppedFixed a regression from the streamdown refactor where the form field name validation regex silently discarded fields with Chinese or Unicode names, breaking existing workflows that relied on non-ASCII field names.
SSO/SCIM: Login Fails When Auto-Create Workspace Disabled but Default Workspace ExistsFixed an issue where SSO and SCIM users could not log in when automatic workspace creation was disabled, even if a default workspace was configured. Users can now authenticate as long as a default workspace is available.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.7

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.0 Critical · 1 High CVE across all container images
ScannerDocker Scout
Scanned
Jul 01, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
139.89
MIN
115
MAX
565
P50
130
P90
141.4
P95
145.85
Connections
Max Concurrent
11
Avg Active
9.7
Empty Workflow QPS
Max QPS
26
Avg QPS
24.96
Avg Duration (ms)
202.3

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.11.0

· 6 min read

What Changed

10
New Features
Bug Fixes
Security: Path Traversal in Plugin Daemon Forwarding (CVE-2026-41948)Fixed CVE-2026-41948, a path traversal vulnerability in plugin-daemon request forwarding, inherited from the Community Edition 1.15.0 base.
Workflow and RAG Stability ImprovementsHardened HTTP timeouts, fixed vector store compatibility issues, refined workflow execution error handling, and reduced workflow startup and termination latency.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Schedule a maintenance window; the application is unusable until the migrations below complete
Immediately after upgrade, run flask rbac-migrate-member-roles (mandatory; members have no access until this finishes)
Then run flask rbac-migrate-dataset-permissions --apply (mandatory; dataset access is incorrect under RBAC until this finishes)
Then run flask backfill-plugin-auto-upgrade (mandatory) before restoring traffic
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.11.0

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.9 Critical · 32 High CVE across all container images
ScannerDocker Scout
Scanned
Jun 30, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
143.31
MIN
129
MAX
164
P50
137
P90
161.8
P95
163.4
Connections
Max Concurrent
18
Avg Active
17.5
Empty Workflow QPS
Max QPS
20.8
Avg QPS
19.99
Avg Duration (ms)
144.09

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.9.6

· 4 min read

What Changed

5
New Features
Bug Fixes
Chatflow Service API: Hang When Conversation ID Does Not ExistFixed an issue where the Chatflow Service API would hang indefinitely when called with a non-existent conversation ID. The API now creates a new conversation instead of blocking the request.
Chatflow: Images Lost in History After Page RefreshFixed a bug where images embedded in Chatflow responses would disappear after refreshing or reopening a conversation. Images generated during the chat session are now correctly persisted and displayed in conversation history.
Password Reset: Internal Server Error Due to ORM DetachedInstanceErrorFixed an Internal Server Error that occurred when using the password reset feature. The error was caused by a SQLAlchemy DetachedInstanceError in the password reset flow, which has been resolved by correcting the ORM session handling.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.6

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
No security vulnerabilities fixed in this release.0 Critical · 28 High CVE across all container images
ScannerDocker Scout
Scanned
Jun 23, 2026
Data Source
Docker
TTFE – Time To First Event (ms)
AVG
139.58
MIN
113
MAX
467
P50
129
P90
138
P95
195.1
Connections
Max Concurrent
11
Avg Active
9.4
Empty Workflow QPS
Max QPS
25.8
Avg QPS
24.04
Avg Duration (ms)
191.51

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0

Release v3.9.5

· 3 min read

What Changed

2
Security
CVE-2026-41947: Trace-Config Endpoint Tenant IsolationBackported the tenant isolation fix for the trace-config endpoint from Community v1.14.2. This prevents authenticated Editor users from bypassing tenant boundaries to modify arbitrary application trace configurations, which could lead to data leakage.
Sandbox Vulnerability RemediationUpgraded sandbox to version 0.2.15 with Chainguard base image to address multiple CVEs. The new base image provides improved security posture and reduced attack surface.

Upgrade Guide

Pre-Upgrade Checklist
Back up PostgreSQL database and Redis data
Confirm Kubernetes cluster has sufficient resources for rolling update
Zero-downtime rolling upgrade supported
Upgrade Command

# Back up database first, then:

$ helm upgrade -i dify -f values.yaml dify-ee/dify --version 3.9.5

Rollback

$ helm rollback dify 0

Security & CVE

Full CVE report →
Security vulnerabilities found in this release.0 Critical · 0 High CVE across all container images
ScannerDocker Scout
Scanned
Jun 04, 2026
Data Source
Docker
CVEs for the opt-in api-insecure image is excluded from the CVE table above.
TTFE – Time To First Event (ms)
AVG
143.63
MIN
120
MAX
524
P50
132
P90
146.6
P95
152.4
Connections
Max Concurrent
12
Avg Active
10.5
Empty Workflow QPS
Max QPS
29.2
Avg QPS
26.86
Avg Duration (ms)
289.88

License Compliance

Full license report →
All dependencies compliant - no copyleft issues detected
Apache-2.0MITBSD-3-ClauseMPL-2.0BSD-2-ClauseISCCC0-1.0
© 2026 Dify All rights reserved.Enterprise release information is confidential. Do not distribute externally.