forked from molecule-ai/molecule-core
Replace denylist approach with strict allowlist: only PATH, HOME, LANG, PYTHONPATH, WORKSPACE_ID, WORKSPACE_NAME, PLATFORM_URL (and a small set of locale/Python runtime vars) pass through to agent-executed code. Every other env var — including ANTHROPIC_API_KEY, GH_TOKEN, DATABASE_URL, REDIS_URL, *_SECRET, *_PASSWORD — is stripped from os.environ for the duration of SafeLocalPythonExecutor.__call__ and restored on exit. - make_safe_env() is a pure read (never mutates os.environ) - _ENV_PATCH_LOCK serialises concurrent calls for thread safety - os.environ fully restored even on exception (try/finally) - 38 unit tests covering all secret categories, thread safety, import restrictions, and env-restore guarantees Closes #826 Sub-issue of #804 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| smolagents | ||
| __init__.py | ||