ralph-claude-code/lib
frankbria 50f6ef7a96 fix(security): address code review security findings
Fixes three security issues identified in Phase 1.1 code review:

1. JSON injection in parse_json_response() (response_analyzer.sh:113-132)
   - Replace heredoc with jq construction using --arg for strings
   - Use --argjson for numeric/boolean fields
   - Ensures proper escaping of quotes, newlines, backslashes

2. Input validation for --allowed-tools flag (ralph_loop.sh:903-905)
   - Add VALID_TOOL_PATTERNS whitelist
   - Add validate_allowed_tools() function
   - Validate against whitelist in argument parsing
   - Allow Bash(...) patterns with any content

3. Shell injection in build_claude_command() (ralph_loop.sh:439-444)
   - Convert from string concatenation to command array
   - Use global CLAUDE_CMD_ARGS array
   - Execute with "${CLAUDE_CMD_ARGS[@]}" instead of bash -c
   - No manual escaping needed - array handles metacharacters

All 98 tests passing.

Closes #48, #50
2026-01-08 21:02:46 -07:00
..
circuit_breaker.sh feat(date): add cross-platform date compatibility for macOS and Linux 2025-12-31 16:04:49 -07:00
date_utils.sh fix(date): ensure Linux date utility returns UTC timestamps 2025-12-31 16:48:24 -07:00
response_analyzer.sh fix(security): address code review security findings 2026-01-08 21:02:46 -07:00