Flyto2 Core: ${env.VAR} interpolation reads any env secret despite env.get being denylisted
概要
Flyto2 Core: ${env.VAR} interpolation reads any env secret despite env.get being denylisted
原文の説明
取得元が公開している説明をそのまま載せています (多くは英語)。
Summary
The capability policy denies the env.get and env.load_dotenv modules by default, with the stated reason that they read arbitrary host environment variables (API keys, DSNs) and are a secret-exfil risk. But the workflow engine's variable resolver expands ${env.VAR} for any environment variable with no allowlist and no policy check, so the exact capability the denylist blocks is available to any workflow parameter. The resolved secret can then be sent out through any allowed module.
Affected code
src/core/engine/variable_resolver.py:
if var_type == 'env':
if len(parts) < 2:
return None
env_var = parts[1]
return os.getenv(env_var) # any env var, no allowlist, not covered by module policy
The module policy (enforce_module_policy in module_policy.py) gates module execution at BaseModule.run, but ${...} interpolation happens earlier in the engine and is not subject to it. So denylisting env.get does not actually stop a workflow from reading host env secrets.
Reproduction
Save as envbypass_poc.py, run with PYTHONPATH=src/src python envbypass_poc.py.
#!/usr/bin/env python3
import os
os.environ["AWS_SECRET_ACCESS_KEY"] = "AKIA-operator-super-secret-DO-NOT-LEAK"
from core.module_policy import module_filter
from core.engine.variable_resolver import VariableResolver
print("env.get allowed? ", module_filter.is_allowed("env.get"))
r = VariableResolver(params={}, context={})
print("resolv…
出典: NIST National Vulnerability Database NVD GitHub Advisory
AI要約
外部の AI が作成した要約です。誤りを含むことがあります。重要な判断の前に、下の原文と参照URLを確認してください。
Flyto2 Coreの2.26.6未満のバージョンにおいて、ワークフローバリアブルリゾルバがホスト環境変数を許可リストやポリシーチェックなしに展開する脆弱性があります。これにより、env.getやenv.load_dotenvを介して機密情報が漏洩する可能性があります。バージョン2.26.6でこの問題は修正されています。
Flyto2 Coreのワークフローバリアブルリゾルバが環境変数を許可リストなしで展開する脆弱性。
Flyto2 Coreの2.26.6未満のバージョン。
環境変数に関する機密情報が漏洩し、深刻なセキュリティリスクを引き起こす可能性がある。
Flyto2 Coreをバージョン2.26.6にアップデートする。
情報なし
使用しているFlyto2 Coreのバージョンを確認し、2.26.6未満であればアップデートが必要。
影響パッケージ
参照URL
- advisory nvd.nist.gov
- advisory github.com
- package github.com
- package pypi.org
- web github.com
- web github.com
- web github.com