CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-67428

CVE-2026-67428: Server-Side Request Forgery in Flyto2 Core HTTP-Emitting Modules

Alon Barad
Alon Barad
Software Engineer

Jul 30, 2026·5 min read·29 visits

Executive Summary (TL;DR)

Low-privileged users can execute arbitrary Server-Side Request Forgery (SSRF) attacks against cloud metadata endpoints and local networks due to unvalidated HTTP-emitting modules in Flyto2 Core.

Flyto2 Core (flyto-core) prior to version 2.26.7 did not utilize its centralized SSRF validation mechanism ('validate_url_with_env_config') across multiple HTTP-emitting modules. This oversight allowed low-privileged users executing automated workflows to perform Server-Side Request Forgery (SSRF) attacks against internal endpoints, loopback interfaces, and cloud provider metadata services.

Vulnerability Overview

Flyto2 Core (flyto-core) is an execution engine designed for AI-agent operations and task automations. To carry out its operational steps, it frequently issues outbound HTTP requests on behalf of its users. Prior to version 2.26.7, the framework suffered from multiple decentralized Server-Side Request Forgery (SSRF) vulnerabilities due to inconsistent security posture across its outbound modules.\n\nSeveral modules emitted raw outbound requests directly to caller-provided URLs without passing them through the internal URL sanitation gateway. Because this component serves as the central hub for running dynamic workflow automation steps, the lack of centralized enforcement allowed authenticated users with low privileges to instruct the server to fetch localized configurations, interrogate adjacent intranet APIs, or compromise platform integrity.

Root Cause Analysis

The core vulnerability resides in the application's decentralized approach to verifying outbound HTTP destinations. The architecture relied on individual modules to explicitly opt-in to validation via the validate_url_with_env_config utility, rather than deploying an egress-level firewall or a secure-by-default wrapped client interface.\n\nMultiple modules processing third-party webhook integrations, AI vision workflows, GraphQL queries, and proxy configurations executed direct, raw requests using standard networking clients such as aiohttp or httpx without checking the targets. This architectural choice bypassed validation policies designed to blacklist private subnets (such as 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and cloud metadata API addresses (such as 169.254.169.254). Consequently, an attacker capable of configuring tasks could direct the server to communicate with internal resources that are isolated from external internet access.\n\nmermaid\ngraph LR\n A["Low-Privilege User"] -->|"1. Injects internal target URL"| B["Flyto2 Core Executor"]\n B -->|"2. Skips validate_url_with_env_config"| C["Internal Subnet / Cloud Metadata"]\n

Code Analysis

The implementation of the fix in commit 0a0a528520ec18f5a21f1ddf858a71cc1edfb6e9 standardized validation across all vulnerable modules. It introduced enforce_outbound_url within src/core/utils.py to route all external URLs through validate_url_with_env_config before issuing requests.\n\nFor example, the AI Vision analyzer was patched to check user-submitted image URLs:\n\npython\n# Before patch\nasync with session.get(image_url) as img_resp:\n if img_resp.status != 200:\n raise ModuleError(f"Failed to download image")\n\n# After patch\ntry:\n enforce_outbound_url(image_url)\nexcept SSRFError as e:\n raise ModuleError(f"SSRF protection blocked request: {e}")\nasync with session.get(image_url) as img_resp:\n pass\n\n\nAdditionally, the patch addressed a redirect bypass (GHSA-c9hr-64h3-gxpc) where an initially validated URL redirected to an internal resource. To block this, a custom guarded_aiohttp_request function disables automatic redirect processing (allow_redirects=False) and manually evaluates the destination host on every redirection hop.\n\nWhile this validation reduces the direct attack surface, the resolution remains susceptible to DNS rebinding. Since the framework resolves hostnames inside validate_url_with_env_config and then triggers a second, independent DNS resolution during the subsequent aiohttp request, a fast-flux DNS response can still redirect the active TCP connection to an internal interface.

Exploitation & Attack Vectors

Exploitation requires low-privileged user credentials or access to a workspace where workflows can be configured. An attacker can use two primary vectors to compromise isolated systems or access cloud environments.\n\nIn the first vector, an attacker sets up an AI vision workflow using the ai.vision_analyze step. By supplying the EC2 Instance Metadata Service (IMDSv1) endpoint (http://169.254.169.254/latest/meta-data/iam/security-credentials/admin-role) in the image_url field, the worker agent attempts to retrieve the file. Even though the system fails to parse the resulting text as an image, the raw response or debug logs of the execution state can reveal temporary IAM credentials.\n\nIn the second vector, an attacker maps local networks using the webhook modules. By submitting internal IP addresses to communication.slack_send or notification.discord.send_message, the attacker monitors execution latency and error codes. A connection timeout versus an immediate refusal allows the attacker to map active network services across internal IP subnets.

Impact Assessment

The impact of this vulnerability is classified as High, with a CVSS base score of 8.5. Because the application scope changes (Scope: Changed) from the application container to the host or private local area networks, successful exploitation compromises the confidentiality of separate systems.\n\nAccessing internal endpoints enables attackers to retrieve sensitive configurations, bypass firewalls, and extract credentials. If the execution environment resides on AWS, GCP, or Azure, unauthenticated access to the metadata server compromises IAM service credentials, facilitating lateral movement within the cloud infrastructure.\n\nFurthermore, when chained with the related unauthenticated execution endpoint vulnerability (GHSA-jx74-cqjv-2c67), this flaw allows external actors on the same network to leak the internal execution secret (FLYTO_RUNNER_SECRET), yielding full administrator access over the workflow runner cluster.

Remediation & Workarounds

To completely resolve the vulnerability, administrators must upgrade the flyto-core application to version 2.26.7 or newer. This update integrates standardized outbound request gating and blocks the HTTP redirect bypass.\n\nIf immediate upgrading is not possible, implement the following network-level mitigations:\n\n* Deploy egress firewall rules on host machines to block the workflow runner containers from reaching the private subnet ranges 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 unless explicitly required.\n\n* Enforce AWS IMDSv2 and set the HTTP hop limit to 1. This stops containers from accessing host instance metadata.\n\n* Run workflow executors within isolated, sandboxed virtual private networks (VPCs) without physical routes to active production microservices or administrative databases.

Official Patches

flytohubOfficial vulnerability fix patch

Fix Analysis (1)

Technical Appendix

CVSS Score
8.5/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
EPSS Probability
0.34%
Top 74% most exploited

Affected Systems

flyto-core

Affected Versions Detail

Product
Affected Versions
Fixed Version
flyto-core
flytohub
< 2.26.72.26.7
AttributeDetail
CWE IDCWE-918
Attack VectorNetwork (AV:N)
CVSS Score8.5 (High)
EPSS Score0.00337 (26.26th percentile)
ImpactServer-Side Request Forgery / Internal Reconnaissance / Metadata Exfiltration
Exploit StatusPoC available, no active exploitation reported
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
CWE-918
Server-Side Request Forgery (SSRF)

The web application fetches a remote resource without validating the user-supplied URL.

Known Exploits & Detection

Security Researcher zx / JaceVerified Proof-of-Concept delivered to the maintainers demonstrating cloud metadata access through workflow executors.

Vulnerability Timeline

Patch committed and tagged in version 2.26.7
2026-07-08
GHSA-pgwh-4jj4-qm8v and CVE-2026-67428 published
2026-07-29

References & Sources

  • [1]GHSA-pgwh-4jj4-qm8v: Decentralized SSRF in Flyto2 Core
  • [2]Flyto2 Core Release v2.26.7

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•40 minutes ago•GHSA-XXV7-2VV3-H682
7.7

CVE-2026-85650: Server-Side Request Forgery in Trigger.dev Webhook Alert Channel Delivery

A critical Server-Side Request Forgery (SSRF) vulnerability in Trigger.dev prior to version 4.5.2 allows authenticated organization members to configure webhook alert channels with unvalidated target URLs. This can lead to internal network scanning and cloud metadata extraction.

Alon Barad
Alon Barad
4 views•7 min read
•about 4 hours ago•GHSA-C9XM-49CP-XCR9
6.3

GHSA-C9XM-49CP-XCR9: Server-Side Request Forgery in rmcp OAuth Client

A Server-Side Request Forgery (SSRF) vulnerability exists in the rmcp OAuth client, which is part of the Model Context Protocol (MCP) Rust SDK. The vulnerability arises from insecure processing of the resource_metadata parameter in WWW-Authenticate headers returned by a malicious or compromised MCP server. The client parses and fetches absolute URLs from this header without validation of scheme, origin, or network routing, allowing remote attackers to initiate HTTP GET requests to local network interfaces, RFC 1918 private subnets, or cloud metadata endpoints.

Alon Barad
Alon Barad
5 views•6 min read
•about 9 hours ago•CVE-2026-92945
4.2

CVE-2026-92945: Sandbox Escape and Module Allowlist Bypass via Path Prefix Matching in vm2

A module allowlist bypass vulnerability (CVE-2026-92945 / GHSA-7q3f-wx44-378m) was identified in the vm2 sandboxing library prior to version 3.11.7. This flaw permits unauthenticated or untrusted code running within the sandbox environment to bypass explicit module restrictions. When the transitive resolution option is disabled, the system fails to validate file system path boundaries, allowing prefix-sharing sibling directories to be resolved and loaded, thereby escaping intended sandbox restrictions.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 10 hours ago•CVE-2026-92941
10.0

CVE-2026-92941: Sandbox Escape and Process-Wide TLS Trust Store Manipulation in vm2

CVE-2026-92941 is a critical sandbox-escape and trust-manipulation vulnerability in the vm2 library (versions 3.11.3 to 3.11.6). This security flaw allows untrusted code executing within a NodeVM sandbox environment to compromise the global TLS trust store of the host Node.js process. By leveraging a design flaw where the host's native 'tls.setDefaultCACertificates' can be executed via a proxy wrapper, combined with a bridge unwrapping bypass in the 'url' module, an attacker can modify the process-wide default root Certificate Authorities. Consequently, all subsequent outbound TLS/HTTPS clients running on the host thread are forced to trust attacker-signed certificates, facilitating transparent Man-in-the-Middle (MitM) attacks. The vulnerability was resolved in version 3.11.7 of vm2 by introducing built-in member-level sanitization before applying read-only proxy wrappers.

Amit Schendel
Amit Schendel
5 views•10 min read
•about 11 hours ago•CVE-2026-92944
9.8

CVE-2026-92944: Sandbox Escape in vm2 via Stale V8 PromiseThenLookupChain Protector

A critical engine-level reachability failure in Node.js 26 running V8 14.6 allows attackers to escape the vm2 sandbox environment. When consecutive prototype properties are modified using sequential assignments, a V8 optimization bug fails to invalidate the PromiseThenLookupChain protector. By calling Promise.prototype.finally, the attacker bypasses the vm2 wrappers, hijacks the promise reaction using a custom constructor, triggers a calibrated stack overflow to capture a host-realm RangeError, and executes arbitrary shell commands on the host.

Alon Barad
Alon Barad
7 views•8 min read
•about 12 hours ago•CVE-2026-92939
9.9

CVE-2026-92939: Critical Sandbox Escape via Host Crypto setEngine Native Code Execution in vm2

A critical sandbox escape vulnerability in the vm2 library allows sandboxed JavaScript code to bypass containment and execute arbitrary native code on the host process. This occurs when the host's builtin crypto module is exposed to the NodeVM environment. Although vm2 implements a read-only proxy layer to restrict direct modifications to host properties, it does not prevent invocation of host-level functions. By calling the crypto.setEngine API with a path to a malicious native library on disk, an attacker can trigger OpenSSL's dynamic module loader. The host's operating system loader immediately runs the dynamic library's initializers/constructors before verifying engine compatibility, leading to remote code execution in the context of the host process.

Amit Schendel
Amit Schendel
6 views•5 min read