You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(security): confine writes, gate ${env.*}, and bind env creds to trusted endpoints
Fixes three privately-reported advisories:
- GHSA-2956-977x-2w3r (Critical): arbitrary file write. Route every
file-writing module through validate_path_with_env_config() so output is
confined to FLYTO_SANDBOX_DIR; the caller can no longer supply the base its
target is checked against. Modules: image.download/convert/resize/crop/
compress/rotate/watermark/qrcode_generate, document.excel_write/pdf_fill_form/
word_to_pdf/pdf_to_word, browser.pagination checkpoint.
- GHSA-hr7p-wg7r-hg9m (High): ${env.VAR} interpolation bypassed the env.get
denylist. New is_env_var_allowed() ties ${env.*} to the same policy as the
env.get module: deny-by-default, opt-in via FLYTO_ENV_VAR_ALLOWLIST.
- GHSA-qq9q-xgm3-xv9g (High): env-derived API key forwarded to a
caller-controlled base_url. New assert_env_credential_endpoint_allowed()
attaches an env key only to the official endpoint or FLYTO_TRUSTED_LLM_HOSTS,
across llm.chat, ai.model, llm.agent and vector.connector; also adds the
missing SSRF check to ai.model.
Each fix verified against the reporter's own PoC; positive paths (allowlisted
env vars, in-sandbox writes, trusted endpoints) confirmed still working.
0 commit comments