mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-16 05:20:22 +08:00
* feat(sandbox): extend L7 credential injection to query params, Basic auth, and URL paths Closes #689 Extend SecretResolver to resolve openshell:resolve:env:* placeholders in URL query parameters, Basic auth tokens, and URL path segments. Absorbs working code from PR #631 for query param and Basic auth support. Adds path rewriting for Telegram-style APIs (/bot{TOKEN}/method). Changes all placeholder rewriting to fail-closed: unresolved placeholders cause HTTP 500 instead of forwarding raw placeholder strings. Validates resolved secret values for CRLF/null injection (CWE-113). Validates path credentials for traversal sequences (CWE-22). Rewrites request targets before OPA L7 policy evaluation. OPA receives a redacted path with [CREDENTIAL] markers. Real secrets appear only in the upstream connection. All log statements use redacted targets. * fix(docs): remove base64 example that triggers secret scanning alert * test(sandbox): add relay integration tests for all credential injection methods Add 9 integration tests that exercise credential injection through the full relay_http_request_with_resolver pipeline with simulated upstream: - Bearer header injection - Exact header value injection (x-api-key) - Basic auth decode/resolve/re-encode - Query parameter injection - URL path injection (Telegram-style concatenated) - URL path injection (standalone segment) - Combined path + header injection - Fail-closed: unresolved header placeholder - Fail-closed: unresolved path placeholder