Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network access and cookie interception required (AV:N, AC:H, PR:N); impact limited to partial session confidentiality (C:L); no integrity or availability impact.
Primary rating from Vendor (vuldb).
CVSS VectorVendor: vuldb
Lifecycle Timeline
2DescriptionCVE.org
A flaw has been found in mangroup dtale up to 3.22.0. This vulnerability affects the function build_secret_key of the file dtale/app.py of the component Flask Session Cookie. This manipulation causes insufficiently random values. Remote exploitation of the attack is possible. The attack's complexity is rated as high. It is stated that the exploitability is difficult. The exploit has been published and may be used. The pull request to fix this issue awaits acceptance.
AnalysisAI
Weak session key generation in dtale up to version 3.22.0 allows remote attackers with network access and session cookie capture capability to predict or brute-force the Flask SECRET_KEY and subsequently forge session cookies. The build_secret_key function in dtale/app.py generates a 10-character key using NumPy's non-cryptographic PRNG over a 36-character alphabet, yielding severely insufficient entropy for a security-sensitive value. Publicly available exploit code exists per the CVE description and corroborated by CVSS 4.0 E:P, but no active exploitation has been confirmed by CISA KEV; an upstream fix PR has been submitted but not yet merged.
Technical ContextAI
dtale is an open-source Python web application for interactive data visualization built on Flask. Flask derives session cookie integrity from a SECRET_KEY via HMAC signing; a predictable key enables cookie forgery and user impersonation. The vulnerable build_secret_key function in dtale/app.py used numpy.random.choice over a 36-character set (ASCII uppercase plus digits) to produce a 10-character key - approximately 36^10 or roughly 3.7×10^15 combinations drawn from a deterministic, non-cryptographic PRNG whose state can be inferred or exhausted. CWE-310 (Cryptographic Issues) applies directly: the root cause is reliance on an inappropriate entropy source for a security-critical value. The confirmed fix in GitHub PR #963 replaces this with binascii.hexlify(os.urandom(32)).decode('ascii'), leveraging the OS CSPRNG for 256 bits of entropy - a fundamentally sound remediation removing both the numpy dependency and the weak generation logic.
RemediationAI
No merged patched release is available at time of analysis - the upstream fix PR (https://github.com/man-group/dtale/pull/963) has not yet been accepted into the main branch, and no patched version number has been independently confirmed from any vendor advisory. As a primary compensating control, operators should manually apply the PR change: replace the build_secret_key function body with return binascii.hexlify(os.urandom(32)).decode('ascii') and remove the now-unused numpy and string imports. This approach requires testing after applying, as it modifies a dependency. Alternatively, bypass the vulnerable function entirely by setting the Flask SECRET_KEY externally at deployment time using a cryptographically secure value generated via python -c "import secrets; print(secrets.token_hex(32))" and injecting it as an environment variable or application configuration parameter before dtale starts; this prevents build_secret_key from being called. Additionally, restrict dtale instance network access to trusted internal networks or VPN-gated segments to prevent attacker interception of session cookies, which is a prerequisite for exploitation. Monitor https://github.com/man-group/dtale/pull/963 for merge status and upgrade immediately once a patched release is confirmed.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same weakness CWE-310 – Cryptographic Issues
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-59768
GHSA-q2jc-92rc-h772