First published: Mon Apr 14 2025(Updated: )
AutoGPT is a platform that allows users to create, deploy, and manage continuous artificial intelligence agents that automate complex workflows. Prior to 0.6.1, AutoGPT allows SSRF due to DNS Rebinding in requests wrapper. AutoGPT is built with a wrapper around Python's requests library, hardening the application against SSRF. The code for this wrapper can be found in autogpt_platform/backend/backend/util/request.py. The requested hostname of a URL which is being requested is validated, ensuring that it does not resolve to any local ipv4 or ipv6 addresses. However, this check is not sufficient, as a DNS server may initially respond with a non-blocked address, with a TTL of 0. This means that the initial resolution would appear as a non-blocked address. In this case, validate_url() will return the url as successful. After validate_url() has successfully returned the url, the url is then passed to the real request() function. When the real request() function is called with the validated url, request() will once again resolve the address of the hostname, because the record will not have been cached (due to TTL 0). This resolution may be in the "invalid range". This type of attack is called a "DNS Rebinding Attack". This vulnerability is fixed in 0.6.1.
Credit: security-advisories@github.com
Affected Software | Affected Version | How to fix |
---|---|---|
AutoGPT | <0.6.1 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
The severity of CVE-2025-31490 is considered high due to its potential for Server-Side Request Forgery (SSRF) attacks.
To fix CVE-2025-31490, upgrade AutoGPT to version 0.6.1 or later, which addresses the DNS Rebinding vulnerability.
CVE-2025-31490 can facilitate SSRF attacks, allowing an attacker to make requests to internal services from the vulnerable server.
AutoGPT versions prior to 0.6.1 are affected by CVE-2025-31490.
Yes, CVE-2025-31490 is exploitable remotely, allowing an attacker to exploit the vulnerability without physical access to the server.