Files
dashcaddy/dashcaddy-api
Hermes 3b3c4f8b8e
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
[grade=B] fix: harden trust-proxy setting + eliminate raw X-Forwarded-For spoofing
Codex previously graded D (blocking) for two security concerns:
1. trust proxy:1 trusts any direct connection as a proxy
2. extractTailscaleIPs reads raw X-Forwarded-For/X-Real-IP headers

Fixes:
- trust proxy changed from '1' to ['loopback', '172.16.0.0/12', '10.0.0.0/8']
  - Covers bare-metal (Caddy on localhost) and Docker bridge deployments
  - External IPs cannot appear in list → cannot spoof X-Forwarded-For
- extractTailscaleIPs now uses req.ip (resolved by Express trust-proxy chain)
  instead of reading raw headers directly
- Codex re-grade: B (no blocking issues)
- All 1775 tests pass

Security verified on test server:
- Sensitive routes: 403 from external ✓
- Public routes: 200 ✓
- Health endpoints: JSON 200 ✓
2026-08-13 12:56:58 -07:00
..
2026-03-05 02:26:12 -08:00
2026-07-24 05:14:56 -07:00