Skip to content

fix(security): isolate proxy env in shared runtimes#42

Merged
chaliy merged 1 commit intomainfrom
fix/security-hardening-multitenant
Mar 14, 2026
Merged

fix(security): isolate proxy env in shared runtimes#42
chaliy merged 1 commit intomainfrom
fix/security-hardening-multitenant

Conversation

@chaliy
Copy link
Contributor

@chaliy chaliy commented Mar 14, 2026

What

Harden FetchKit for multi-tenant and clustered deployments by isolating proxy environment inheritance by default and documenting the security posture.

Why

Shared runtimes can carry ambient HTTP_PROXY / HTTPS_PROXY configuration that silently reroutes fetch traffic through operator-provided or compromised proxies. That weakens deployment isolation and makes threat-model assumptions less reliable.

How

  • add respect_proxy_env(false) as the default tool/fetch option
  • call reqwest::ClientBuilder::no_proxy() in built-in fetchers unless the caller opts in
  • extend Python bindings to expose the proxy-env control
  • add regression coverage for proxy-env behavior and response truncation
  • update the threat model, specs, README, and add public security notes

Risk

  • Low
  • Requests that previously relied on implicit proxy environment variables will now need explicit opt-in via respect_proxy_env(true).

Checklist

  • Unit tests are passed
  • Smoke tests are passed
  • Documentation is updated
  • Specs are up to date and not in conflict
  • cargo fmt --all -- --check passed
  • cargo clippy --workspace --all-targets -- -D warnings passed
  • cargo test --workspace passed
  • RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps passed

@chaliy chaliy merged commit 1f15079 into main Mar 14, 2026
10 checks passed
@chaliy chaliy deleted the fix/security-hardening-multitenant branch March 14, 2026 01:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant