Jason Woltje
0a527d2a4e
ci/woodpecker/push/woodpecker Pipeline failed
fix(#279): Validate orchestrator URL configuration (SSRF risk)
Implemented comprehensive URL validation to prevent SSRF attacks:
- Created URL validator utility with protocol whitelist (http/https only)
- Blocked access to private IP ranges (10.x, 192.168.x, 172.16-31.x)
- Blocked loopback addresses (127.x, localhost, 0.0.0.0)
- Blocked link-local addresses (169.254.x)
- Blocked IPv6 localhost (::1, ::)
- Allow localhost in development/test environments only
- Added structured audit logging for invalid URL attempts
- Comprehensive test coverage (37 tests for URL validator)
Security Impact:
- Prevents attackers from redirecting agent spawn requests to internal services
- Blocks data exfiltration via malicious orchestrator URL
- All agent operations now validated against SSRF
Files changed:
- apps/api/src/federation/utils/url-validator.ts (new)
- apps/api/src/federation/utils/url-validator.spec.ts (new)
- apps/api/src/federation/federation-agent.service.ts (validation integration)
- apps/api/src/federation/federation-agent.service.spec.ts (test updates)
- apps/api/src/federation/audit.service.ts (audit logging)
- apps/api/src/federation/federation.module.ts (service exports)
Fixes #279
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 20:47:41 -06:00
..
2026-02-03 14:37:06 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 11:13:12 -06:00
2026-01-31 16:50:32 -06:00
2026-02-03 14:37:06 -06:00
2026-02-01 21:01:25 -06:00
2026-02-03 20:35:00 -06:00
2026-01-31 13:44:23 -06:00
2026-01-31 13:51:46 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 14:37:06 -06:00
2026-01-30 18:26:41 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 20:47:41 -06:00
2026-01-28 15:07:04 -06:00
2026-02-03 14:37:06 -06:00
2026-02-02 12:51:17 -06:00
2026-02-02 12:30:19 -06:00
2026-02-02 11:41:11 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 14:37:06 -06:00
2026-01-30 18:26:41 -06:00
2026-01-31 15:01:18 -06:00
2026-01-31 13:07:58 -06:00
2026-02-03 14:37:06 -06:00
2026-01-31 12:44:50 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 14:37:06 -06:00
2026-01-31 13:33:04 -06:00
2026-01-31 14:47:59 -06:00
2026-01-31 14:01:42 -06:00
2026-02-02 12:51:17 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 14:37:06 -06:00
2026-01-31 12:55:11 -06:00
2026-01-31 15:01:18 -06:00
2026-01-30 18:26:41 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 14:37:06 -06:00
2026-02-03 19:17:13 -06:00
2026-02-01 01:48:09 -06:00
2026-01-28 16:24:25 -06:00
2026-01-30 18:26:41 -06:00
2026-02-03 20:35:00 -06:00
2026-01-28 13:31:33 -06:00
2026-02-02 12:13:17 -06:00
2026-02-02 12:13:17 -06:00