/

CVE-2026-55787

Severity:

HIGH RISK

(7.1)

SSRF (CWE-918) in Flyto2 Core URL Validation Checks

CVE-2026-55787

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Internal Data and Credential Disclosure

Severity:

HIGH RISK

(7.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Flyto2 Core contains a server-side request forgery weakness in URL and IP validation that may accept transition-form addresses pointing to internal IPv4 destinations. An authenticated workflow author could use a permitted outbound-request feature to retrieve internal-service data or cloud metadata responses when the host routes the selected address form.

Flyto2 Core contains a server-side request forgery weakness in URL and IP validation that may accept transition-form addresses pointing to internal IPv4 destinations. An authenticated workflow author could use a permitted outbound-request feature to retrieve internal-service data or cloud metadata responses when the host routes the selected address form.

Affected context

The issue may occur in Flyto2 Core deployments that use URL validation for outbound requests through the Execution API, http.get, or related guarded modules. Risk depends on whether the deployment accepts transition-form IPv6 literals, routes them to embedded IPv4 destinations, and exposes internal services or metadata endpoints from the execution environment.

The issue may occur in Flyto2 Core deployments that use URL validation for outbound requests through the Execution API, http.get, or related guarded modules. Risk depends on whether the deployment accepts transition-form IPv6 literals, routes them to embedded IPv4 destinations, and exposes internal services or metadata endpoints from the execution environment.

Exploit preconditions

  • Attack surface: Execution API outbound-request functionality and sibling guarded HTTP modules
  • Required access: Authenticated permission to author or submit workflows
  • Trigger point: URL validation and subsequent outbound request handling
  • Why exploitation is possible: Validation checks native private IPv4 and IPv6 ranges without consistently unwrapping IPv4-mapped, IPv4-compatible, 6to4, or NAT64 transition addresses
  • Environmental dependency: The selected transition form must be routable by the execution host and resolve toward an internal destination
  • Attack surface: Execution API outbound-request functionality and sibling guarded HTTP modules
  • Required access: Authenticated permission to author or submit workflows
  • Trigger point: URL validation and subsequent outbound request handling
  • Why exploitation is possible: Validation checks native private IPv4 and IPv6 ranges without consistently unwrapping IPv4-mapped, IPv4-compatible, 6to4, or NAT64 transition addresses
  • Environmental dependency: The selected transition form must be routable by the execution host and resolve toward an internal destination

Why this happens

The underlying bug is incomplete canonicalization of IP address representations before security classification. The validation logic compares resolved addresses against private ranges but does not normalize transition mechanisms that embed or represent IPv4 addresses, allowing an internal target to appear externally routable.

This maps to CWE-918: Server-Side Request Forgery, because attacker-influenced URLs can cause the server to make requests to destinations that should be inaccessible through the application's outbound-request controls.

The underlying bug is incomplete canonicalization of IP address representations before security classification. The validation logic compares resolved addresses against private ranges but does not normalize transition mechanisms that embed or represent IPv4 addresses, allowing an internal target to appear externally routable.

This maps to CWE-918: Server-Side Request Forgery, because attacker-influenced URLs can cause the server to make requests to destinations that should be inaccessible through the application's outbound-request controls.

Potential impact

  • An attacker may read responses from internal services
  • Cloud instance metadata and temporary credentials could be disclosed
  • Internal APIs or administrative endpoints could be queried
  • Workflow results may expose sensitive network or service information
  • Compromised credentials could enable further access within the environment
  • An attacker may read responses from internal services
  • Cloud instance metadata and temporary credentials could be disclosed
  • Internal APIs or administrative endpoints could be queried
  • Workflow results may expose sensitive network or service information
  • Compromised credentials could enable further access within the environment

General mitigation guidance

Mitigation generally focuses on canonicalizing all supported IP representations before applying SSRF policy and enforcing destination controls at multiple layers.

Common defensive patterns include:

  • Normalize IPv4-mapped, IPv4-compatible, 6to4, NAT64, and equivalent transition forms before classification
  • Apply allowlist-based egress policies where feasible instead of relying only on private-range blocking
  • Revalidate the final resolved destination immediately before connection establishment
  • Restrict access from workflow workers to metadata services and sensitive internal networks
  • Use network-level egress controls, DNS protections, and least-privilege execution identities
  • Return only the minimum response data required by workflow functionality

Mitigation generally focuses on canonicalizing all supported IP representations before applying SSRF policy and enforcing destination controls at multiple layers.

Common defensive patterns include:

  • Normalize IPv4-mapped, IPv4-compatible, 6to4, NAT64, and equivalent transition forms before classification
  • Apply allowlist-based egress policies where feasible instead of relying only on private-range blocking
  • Revalidate the final resolved destination immediately before connection establishment
  • Restrict access from workflow workers to metadata services and sensitive internal networks
  • Use network-level egress controls, DNS protections, and least-privilege execution identities
  • Return only the minimum response data required by workflow functionality

How teams detect issues like this

Detection approaches may include:

  • Static analysis and code review for IP checks that inspect only native address families
  • Tests covering mapped, compatible, 6to4, NAT64, hexadecimal, and other alternate address representations
  • Review of URL validators for canonicalization, DNS-rebinding resistance, and time-of-check/time-of-use gaps
  • Egress monitoring for workflow workers contacting loopback, RFC 1918, link-local, metadata, or other restricted ranges
  • Policy enforcement requiring centralized SSRF-safe HTTP clients for outbound requests
  • Automated security testing that compares parser output with the address actually used for connection

Detection approaches may include:

  • Static analysis and code review for IP checks that inspect only native address families
  • Tests covering mapped, compatible, 6to4, NAT64, hexadecimal, and other alternate address representations
  • Review of URL validators for canonicalization, DNS-rebinding resistance, and time-of-check/time-of-use gaps
  • Egress monitoring for workflow workers contacting loopback, RFC 1918, link-local, metadata, or other restricted ranges
  • Policy enforcement requiring centralized SSRF-safe HTTP clients for outbound requests
  • Automated security testing that compares parser output with the address actually used for connection

Sources

SourceLink
github.comgithub.com/flytohub/flyto-core/commit/519e040384a74984848c4e84a6600e5f1020a6d2
github.comgithub.com/flytohub/flyto-core/pull/20
github.comgithub.com/flytohub/flyto-core/releases/tag/v2.26.3
github.comgithub.com/flytohub/flyto-core/security/advisories/GHSA-794r-5rp2-fpg8

Frequently asked

questions

It may be exploitable through the exposed Execution API or outbound-request modules when an attacker has authenticated workflow-authoring access and the execution host routes the relevant transition-form address.

The described attack requires authentication sufficient to submit or control a workflow that can invoke an outbound HTTP request. Exploitability also depends on network routing and reachable internal services.

Canonicalize every supported IP representation before policy checks, validate the final destination at connection time, and combine application checks with network-level egress restrictions.

Use a centralized SSRF-resistant networking layer, maintain comprehensive address-representation test cases, restrict worker privileges and egress, and continuously monitor requests to protected network ranges.

It may be exploitable through the exposed Execution API or outbound-request modules when an attacker has authenticated workflow-authoring access and the execution host routes the relevant transition-form address.

The described attack requires authentication sufficient to submit or control a workflow that can invoke an outbound HTTP request. Exploitability also depends on network routing and reachable internal services.

Canonicalize every supported IP representation before policy checks, validate the final destination at connection time, and combine application checks with network-level egress restrictions.

Use a centralized SSRF-resistant networking layer, maintain comprehensive address-representation test cases, restrict worker privileges and egress, and continuously monitor requests to protected network ranges.

Find out what's already
exploitable in your codebase.