Internet-exposed Gradio deployments running versions below 4.44.0 are vulnerable to a timing side-channel that allows an unauthenticated attacker to brute-force the analytics dashboard hash byte-by-byte. Upgrade to gradio >= 4.44.0 immediately; if patching is delayed, disable the analytics dashboard or restrict access to trusted networks. Real-world exploitation risk is low due to high attack complexity, but any public-facing ML demo or prototyping environment using Gradio should be prioritized.
Risk Assessment
Low severity (CVSS 3.7) with high attack complexity — timing attacks against network services require hundreds to thousands of precise measurements and are highly sensitive to network jitter, making reliable exploitation difficult in practice. EPSS of 0.00158 confirms negligible exploitation probability in the wild. However, Gradio is extremely popular for ML prototyping and demos, and many deployments are internet-exposed with default configurations, which broadens the attack surface. Unauthorized access is limited to analytics data (usage statistics, interaction logs), not model weights or training data. Not in CISA KEV and no evidence of active exploitation.
Affected Systems
Severity & Risk
Attack Surface
Recommended Action
5 steps-
PATCH
Upgrade to gradio >= 4.44.0 which implements constant-time hash comparison.
-
WORKAROUND (pre-patch): Manually patch the
analytics_dashboardfunction to use Python'shmac.compare_digest()instead of standard equality comparison for hash values. -
NETWORK CONTROL
Restrict access to the analytics dashboard endpoint to trusted IP ranges or internal networks only; do not expose it publicly.
-
DISABLE
If analytics dashboard is not needed, disable it entirely in Gradio configuration.
-
DETECTION
Monitor for anomalous high-volume repeated requests to the analytics dashboard endpoint with slight variations — this is characteristic of timing attack probing. Alert on >100 requests/minute from a single source to dashboard endpoints.
CISA SSVC Assessment
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2024-47869?
Internet-exposed Gradio deployments running versions below 4.44.0 are vulnerable to a timing side-channel that allows an unauthenticated attacker to brute-force the analytics dashboard hash byte-by-byte. Upgrade to gradio >= 4.44.0 immediately; if patching is delayed, disable the analytics dashboard or restrict access to trusted networks. Real-world exploitation risk is low due to high attack complexity, but any public-facing ML demo or prototyping environment using Gradio should be prioritized.
Is CVE-2024-47869 actively exploited?
No confirmed active exploitation of CVE-2024-47869 has been reported, but organizations should still patch proactively.
How to fix CVE-2024-47869?
1. PATCH: Upgrade to gradio >= 4.44.0 which implements constant-time hash comparison. 2. WORKAROUND (pre-patch): Manually patch the `analytics_dashboard` function to use Python's `hmac.compare_digest()` instead of standard equality comparison for hash values. 3. NETWORK CONTROL: Restrict access to the analytics dashboard endpoint to trusted IP ranges or internal networks only; do not expose it publicly. 4. DISABLE: If analytics dashboard is not needed, disable it entirely in Gradio configuration. 5. DETECTION: Monitor for anomalous high-volume repeated requests to the analytics dashboard endpoint with slight variations — this is characteristic of timing attack probing. Alert on >100 requests/minute from a single source to dashboard endpoints.
What systems are affected by CVE-2024-47869?
This vulnerability affects the following AI/ML architecture patterns: ML demo platforms, model serving, AI prototyping environments.
What is the CVSS score for CVE-2024-47869?
CVE-2024-47869 has a CVSS v3.1 base score of 3.7 (LOW). The EPSS exploitation probability is 0.16%.
Technical Details
NVD Description
Gradio is an open-source Python package designed for quick prototyping. This vulnerability involves a **timing attack** in the way Gradio compares hashes for the `analytics_dashboard` function. Since the comparison is not done in constant time, an attacker could exploit this by measuring the response time of different requests to infer the correct hash byte-by-byte. This can lead to unauthorized access to the analytics dashboard, especially if the attacker can repeatedly query the system with different keys. Users are advised to upgrade to `gradio>4.44` to mitigate this issue. To mitigate the risk before applying the patch, developers can manually patch the `analytics_dashboard` dashboard to use a **constant-time comparison** function for comparing sensitive values, such as hashes. Alternatively, access to the analytics dashboard can be disabled.
Exploitation Scenario
An adversary identifies a public-facing Gradio instance (e.g., via Shodan, Hugging Face Spaces enumeration, or direct knowledge of an internal deployment) with the analytics dashboard enabled. They write a script that sends thousands of authentication attempts to the dashboard endpoint, varying the hash value one byte at a time and measuring response times using high-resolution timers. By collecting statistical timing data across many requests and accounting for network jitter, the attacker infers each byte of the correct hash sequentially — a classic timing oracle attack. After reconstructing the valid hash (likely requiring tens of thousands of requests over hours), the attacker gains unauthorized access to the analytics dashboard and exfiltrates usage telemetry, user interaction logs, and system metrics that reveal the AI application's behavior and usage patterns.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N References
Timeline
Related Vulnerabilities
CVE-2024-47167 9.8 Gradio: unauthenticated SSRF in /queue/join, internal pivot
Same package: gradio CVE-2024-39236 9.8 Gradio: code injection via component metadata (CVSS 9.8)
Same package: gradio CVE-2023-25823 9.8 Gradio: hardcoded SSH key leaks via share=True demos
Same package: gradio CVE-2024-0964 9.4 Gradio: unauthenticated LFI exposes full server filesystem
Same package: gradio CVE-2023-34239 9.1 Gradio: path traversal + SSRF exposes model files & infra
Same package: gradio
AI Threat Alert