The vulnerability CVE-2026-80181 describes a Server-Side Request Forgery (SSRF) in Apache Allura's webhooks, affecting versions through 1.20.0 and fixed in 1.21.0.
My analysis started by identifying the relevant commits between version 1.20.0 and 1.21.0 in the apache/allura repository. The commit 1a2c209c071373c9224e95651d92729c355056b2 with the message '[#8621] drop ftp/file/data url handlers' was identified as directly addressing the SSRF vulnerability.
Upon examining the patch for this commit, the file Allura/allura/lib/helpers.py was modified. Specifically, the line urllib.request.install_opener(urllib.request.build_opener(NotInternalHTTPHandler, NoInternalHTTPSHandler)) was replaced. The original line implicitly allowed urllib.request.urlopen to handle ftp://, file://, and data:// schemes because urllib.request.build_opener includes handlers for these schemes by default. This allowed an attacker to use these schemes to bypass intended restrictions and access internal resources or local files.
The fix introduces a new function _build_http_only_opener which explicitly constructs an OpenerDirector and adds only the necessary HTTP/HTTPS handlers, deliberately omitting the FTPHandler, FileHandler, and DataHandler. The urllib.request.install_opener then uses this securely configured opener. Therefore, the urlopen function within Allura.allura.lib.helpers is the direct entry point that would be exploited, as it would use the globally installed, vulnerable opener. The text_contains_hostname function was also modified in a related commit, but the core SSRF vulnerability related to scheme handling is addressed by the changes to urlopen's underlying opener configuration.