CVE-2025-31490 Information

Description

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 uses a wrapper around the requests python library located in autogpt_platform/backend/backend/util/request.py. In this wrapper redirects are specifically NOT followed for the first request. If the wrapper is used with allow_redirects set to True (which is the default) any redirect is not followed by the initial request but rather re-requested by the wrapper using the new location. However there is a fundamental flaw in manually re-requesting the new location: it does not account for security-sensitive headers which should not be sent cross-origin such as the Authorization and Proxy-Authorization header and cookies. For example in autogpt_platform/backend/backend/blocks/github/_api.py an Authorization header is set when retrieving data from the GitHub API. However if GitHub suffers from an open redirect vulnerability (such as the made-up example of https://api.github.com/repos/owner/repo/issues/comments/comment_id/../../../../../redirect/?url=https://joshua.hu/) and the script can be coerced into visiting it with the Authorization header the GitHub credentials in the Authorization header will be leaked. All SSRF protections are bypassable; it could allow querying local services or other previously blocked addresses. Depends on the situation. This vulnerability is fixed in 0.6.1.

Reference

https://github.com/Significant-Gravitas/AutoGPT/commit/66ebe4376eab3434af90808796b54c2139847b37 https://github.com/Significant-Gravitas/AutoGPT/security/advisories/GHSA-wvjg-9879-3m7w 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 uses a wrapper around the requests python library located in autogpt_platform/backend/backend/util/request.py. In this wrapper redirects are specifically NOT followed for the first request. If the wrapper is used with allow_redirects set to True (which is the default) any redirect is not followed by the initial request but rather re-requested by the wrapper using the new location. However there is a fundamental flaw in manually re-requesting the new location: it does not account for security-sensitive headers which should not be sent cross-origin such as the Authorization and Proxy-Authorization header and cookies. For example in autogpt_platform/backend/backend/blocks/github/_api.py an Authorization header is set when retrieving data from the GitHub API. However if GitHub suffers from an open redirect vulnerability (such as the made-up example of https://api.github.com/repos/{owner}/{repo}/issues/comments/{comment_id}/../../../../../redirect/?url=https://joshua.hu/)) and the script can be coerced into visiting it with the Authorization header the GitHub credentials in the Authorization header will be leaked. All SSRF protections are bypassable; it could allow querying local services or other previously blocked addresses. Depends on the situation. This vulnerability is fixed in 0.6.1.

Share on: