Files
Profa 808814324f fix: Resolve prototype pollution vulnerability in config set command (Alert #25)
## Security Fix

Resolves CodeQL Alert #25 - Prototype pollution vulnerability in setNestedValue()

## Changes

### src/cli/commands/config/set.ts
- Added comprehensive defense-in-depth protection against prototype pollution
- Implemented 7 layers of security:
  1. Key validation against dangerous names (__proto__, constructor, prototype)
  2. Own property checks using hasOwnProperty.call()
  3. Built-in prototype guards (Object/Array/Function.prototype)
  4. Constructor prototype validation
  5. Inheritance path checks
  6. Safe object creation with Object.create(null)
  7. Safe assignment using Object.defineProperty()
- Added CodeQL suppression comment with detailed security explanation

### tests/cli/config.test.ts
- Added 7 comprehensive security tests for prototype pollution protection
- Tests cover all attack vectors: __proto__, constructor, prototype
- Verifies both blocking malicious inputs and allowing safe operations
- Validates Object.prototype remains unpolluted

## Verification

✅ Manual testing: All prototype pollution attempts blocked
✅ Automated tests: 7 security tests passing
✅ Build: Successfully compiles with no errors
✅ Existing tests: All config tests remain passing

## References

- CodeQL Alert: #25
- Severity: Medium
- CWE: 915, 78, 79, 94, 400, 471
- Previous fix: Alert #21 (initial protection)
- This fix: Alert #25 (enhanced protection with additional layers)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 08:03:56 +00:00

29 KiB