CVE-2026-28416
Description
A flaw was found in Gradio, an open-source Python package for rapid prototyping. A remote attacker can exploit a Server-Side Request Forgery (SSRF) vulnerability by hosting a malicious Gradio Space. When a victim application uses gr.load() to load this attacker-controlled Space, a malicious proxy_url from the configuration is trusted. This allows the attacker to make arbitrary HTTP requests from the victim's server, potentially accessing internal services, cloud metadata endpoints, and private networks through the victim's infrastructure.
Statement
This is an IMPORTANT Server-Side Request Forgery (SSRF) vulnerability in Gradio, affecting the ansible-chatbot-service within Red Hat Ansible Services. The flaw allows an attacker to make arbitrary HTTP requests from a victim's server by injecting a malicious proxy_url when the application uses gr.load() to load an attacker-controlled Gradio Space. This could lead to unauthorized access to internal services, cloud metadata, and private networks.
Mitigation
To mitigate this vulnerability, avoid loading Gradio Spaces from untrusted or unverified sources when using `gr.load()` in applications like the Ansible Chatbot Service. Additionally, implement network egress filtering to restrict outbound connections from systems running Gradio applications, preventing access to internal network resources, cloud metadata endpoints, and private networks.
Understanding the Weakness (CWE)
Confidentiality
Technical Impact: Read Application Data
Integrity
Technical Impact: Execute Unauthorized Code or Commands
Access Control
Technical Impact: Bypass Protection Mechanism
By providing URLs to unexpected hosts or ports, attackers can make it appear that the server is sending the request, possibly bypassing access controls such as firewalls that prevent the attackers from accessing the URLs directly. The server can be used as a proxy to conduct port scanning of hosts in internal networks, use other URLs such as that can access documents on the system (using file://), or use other protocols such as gopher:// or tftp://, which may provide greater control over the contents of requests.
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.