PT-2026-76563 · Unknown · Compliance-Trestle
CVE-2026-52776
·
Published
2026-08-12
·
Updated
2026-08-26
CVSS v4.0
8.6
High
| Vector | AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Name of the Vulnerable Software and Affected Versions
compliance-trestle versions prior to 4.0.4
Description
An incomplete allowlist in the
URLSecurityValidator within trestle/core/remote/security.py allows Server-Side Request Forgery (SSRF) via the HTTPSFetcher and SFTPFetcher remote-fetch paths. The validator fails to block requests to loopback, link-local, and cloud-metadata endpoints when specific address representations are used. Bypasses include IPv4-mapped IPv6 literals (e.g., [::ffff:169.254.169.254]), which evade membership checks in check blocked networks and check private networks because they are treated as IPv6Address objects, and the IPv4 unspecified address 0.0.0.0, which is not included in the ALWAYS BLOCKED NETWORKS list. Additionally, the METADATA HOSTNAMES set uses exact-string matching, failing to identify mapped IPv6 literals. A malicious OSCAL profile can exploit this by referencing these URLs in imports[*].href or back-matter.resources[*].rlinks[*].href, leading to the execution of validator.validate url and subsequent requests via requests.get. This can result in the exfiltration of cloud-metadata credentials or unauthorized access to internal administrative interfaces.Recommendations
Normalize all resolved IP addresses to their canonical IPv4 form before performing membership checks in
check blocked networks and check private networks by implementing a canonicalization function that handles ipv4 mapped addresses.
Add the 0.0.0.0/8 and ::/128 networks to the ALWAYS BLOCKED NETWORKS list.
Update check metadata endpoints to canonicalize bracketed IPv6 literal hostnames before comparing them against the METADATA HOSTNAMES set.
As a temporary mitigation, restrict the use of the HTTPSFetcher and SFTPFetcher when processing untrusted OSCAL artifacts.Exploit
Fix
SSRF
Incomplete List of Disallowed Inputs
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Compliance-Trestle