claude-code-sdk-python/tests
Claude ad08ac005e
fix: prevent command injection in download_cli.py
Add strict validation to CLAUDE_CLI_VERSION environment variable to prevent
command injection vulnerability during CLI download process.

Security Issue:
- Unsanitized environment variable was interpolated into PowerShell and Bash
  commands at lines 75 and 85
- Severity: MEDIUM
- Category: command_injection

Fix:
- Added regex validation to only allow semantic versions (X.Y.Z) or "latest"
- Pattern: ^([0-9]+\.[0-9]+\.[0-9]+|latest)$
- Raises ValueError for invalid input

Testing:
- Created comprehensive test suite (tests/test_download_cli.py)
- Verified valid versions accepted (1.0.0, latest)
- Verified malicious inputs rejected (injection attempts, invalid formats)
- Full backward compatibility maintained

Changes:
- scripts/download_cli.py: Add validation in get_cli_version()
- tests/test_download_cli.py: New test suite with 70+ test cases
- SECURITY_FIX_SUMMARY.md: Documentation of vulnerability and fix
2025-12-12 22:18:35 +00:00
..
conftest.py Initial Python SDK import 2025-06-12 00:16:19 -07:00
test_changelog.py Add changelog and changelog format check (#77) 2025-07-21 10:53:01 -07:00
test_client.py Rename claude_code to claude_agent (#188) 2025-09-28 14:52:53 -07:00
test_download_cli.py fix: prevent command injection in download_cli.py 2025-12-12 22:18:35 +00:00
test_errors.py Rename claude_code to claude_agent (#188) 2025-09-28 14:52:53 -07:00
test_integration.py feat: add max_budget_usd option to Python SDK (#293) 2025-10-30 16:45:35 -07:00
test_message_parser.py Rename claude_code to claude_agent (#188) 2025-09-28 14:52:53 -07:00
test_sdk_mcp_integration.py feat: Added base64 image handling to sdk_mcp_server tool calling (#175) 2025-10-15 07:22:14 -07:00
test_streaming_client.py Fix Windows test failures due to path separator issues (#219) 2025-10-07 16:18:30 -07:00
test_subprocess_buffering.py feat: add cli_path support to ClaudeAgentOptions (#235) 2025-10-12 23:19:53 -07:00
test_tool_callbacks.py feat: add strongly-typed hook inputs with TypedDict (#240) 2025-10-10 16:22:13 -07:00
test_transport.py fix: add write lock to prevent concurrent transport writes (#391) 2025-12-04 14:27:01 -08:00
test_types.py Update model references to claude-sonnet-4-5 (#198) 2025-09-30 12:59:14 -07:00