All vulnerabilities
CVE-2026-55787GHSA-794r-5rp2-fpg8PYSEC-2026-2481

flyto-core: Flyto2 Core: SSRF guard bypass via IPv6 transition addresses (IPv4-mapped / 6to4 / NAT64) in validate_url_ssrf

flytohub flyto-corePyPILibraries & packages
CVSS
7.1High
ExploitationPublic exploit codeCISA's assessment says proof of concept code is public, assessed 15 Oct 2026. Not in the KEV catalogCISA via CVE List
Exploit odds (EPSS)0.24%Chance of exploitation activity in the next 30 days, higher than 13% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in2.26.3Fixed versionOSV
Published14 Oct 2026Updated 15 Oct 2026CVE List

What fixes it

  • 2.26.3flyto-core, PyPIOSVpip install "flyto-core>=2.26.3"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

Flyto2 Core is an execution kernel for automation and AI-agent workflows. Prior to 2.26.3, validate_url_ssrf and is_private_ip in src/core/utils.py compare resolved addresses only against native private IPv4 and IPv6 ranges and do not unwrap IPv4-mapped, IPv4-compatible, 6to4, or NAT64 transition addresses. An authenticated workflow author can provide a transition-form literal URL through the Execution API POST /v1/execute route, http.get, or sibling guarded outbound-request modules, causing the guard to accept an address whose embedded IPv4 points to loopback, RFC 1918, or cloud metadata services. On a host that routes the selected transition form, the outbound request reaches the internal destination and returns the response body to the workflow caller, enabling read SSRF and disclosure of internal-service data or cloud credentials. This issue is fixed in version 2.26.3.

Text from CVE List

Affected versions 52

  • flyto-coreaffected: < 2.26.3CVE List
  • flyto-core, PyPIfrom first release, fixed in 2.26.3OSV
  • flyto-core, PyPI1.0.0OSV
  • flyto-core, PyPI1.0.1OSV
  • flyto-core, PyPI1.0.2OSV
  • flyto-core, PyPI1.0.3OSV
  • flyto-core, PyPI1.0.4OSV
  • flyto-core, PyPI1.0.5OSV
  • flyto-core, PyPI1.0.6OSV
  • flyto-core, PyPI1.0.7OSV
  • flyto-core, PyPI1.0.8OSV
  • flyto-core, PyPI1.0.9OSV
  • flyto-core, PyPI1.1.0OSV
  • flyto-core, PyPI1.1.1OSV
  • flyto-core, PyPI1.11.0OSV
  • flyto-core, PyPI1.12.0OSV
  • flyto-core, PyPI1.13.0OSV
  • flyto-core, PyPI1.14.0OSV
  • flyto-core, PyPI1.14.1OSV
  • flyto-core, PyPI1.14.2OSV
  • flyto-core, PyPI1.15.0OSV
  • flyto-core, PyPI1.16.0OSV
  • flyto-core, PyPI1.16.1OSV
  • flyto-core, PyPI1.16.10OSV
  • flyto-core, PyPI1.16.2OSV
  • flyto-core, PyPI1.16.3OSV
  • flyto-core, PyPI1.16.4OSV
  • flyto-core, PyPI1.16.5OSV
  • flyto-core, PyPI1.16.6OSV
  • flyto-core, PyPI1.16.7OSV
  • flyto-core, PyPI1.16.8OSV
  • flyto-core, PyPI1.16.9OSV
  • flyto-core, PyPI1.2.0OSV
  • flyto-core, PyPI1.3.0OSV
  • flyto-core, PyPI1.4.0OSV
  • flyto-core, PyPI1.5.0OSV
  • flyto-core, PyPI1.5.1OSV
  • flyto-core, PyPI1.5.2OSV
  • flyto-core, PyPI1.5.4OSV
  • flyto-core, PyPI1.6.0OSV
  • flyto-core, PyPI1.6.1OSV
  • flyto-core, PyPI1.6.2OSV
  • flyto-core, PyPI1.6.3OSV
  • flyto-core, PyPI1.6.4OSV
  • flyto-core, PyPI1.6.5OSV
  • flyto-core, PyPI1.7.0OSV
  • flyto-core, PyPI1.7.1OSV
  • flyto-core, PyPI1.7.2OSV
  • flyto-core, PyPI1.7.3OSV
  • flyto-core, PyPI1.7.4OSV
  • flyto-core, PyPI1.7.5OSV
  • flyto-core, PyPI1.7.6OSV

References 4