Jakub Domeracki
fb3aef1883
Merge commit from fork
...
* fix(coderd): Harden Azure identity certificate fetch
- Restrict cert fetches to a host+port allowlist (Microsoft and
DigiCert on 80/443).
- Route requests through a dedicated `http.Client` that resolves
the host once and dials the validated IP directly.
- Reject loopback, private (RFC 1918 / IPv6 ULA), link-local,
multicast, unspecified, CGNAT, benchmarking, and IPv4-mapped
IPv6 addresses.
- Cap the certificate response body at 1 MiB.
- Log the underlying error via slog and return a generic detail
to the caller.
- Add unit tests for the URL allowlist, IP classification, and
dialer.
* fix(coderd/azureidentity): add IPv6 special-use ranges to SSRF blocklist
The extraBlockedNetworks list only contained IPv4 CIDRs. Add IPv6
equivalents that Go's stdlib classification methods do not cover:
- 64:ff9b:1::/48 RFC 8215 NAT64 translation
- 100::/64 RFC 6666 discard-only
- 2001:2::/48 RFC 5180 benchmarking
- 2001:db8::/32 RFC 3849 documentation
IPv6 ranges already handled by stdlib (unchanged):
- ::1/128 (IsLoopback)
- fc00::/7 (IsPrivate, ULA)
- fe80::/10 (IsLinkLocalUnicast)
- ff00::/8 (IsMulticast)
- ::/128 (IsUnspecified)
2026-05-13 11:55:41 +02:00
..
2026-05-11 08:41:17 -06:00
2026-05-08 16:45:14 -04:00
2026-03-16 12:36:26 -05:00
2026-05-12 10:48:36 -04:00
2026-03-02 16:02:01 +01:00
2026-04-29 12:57:47 -06:00
2026-05-11 12:43:52 -05:00
2026-05-13 11:55:41 +02:00
2026-02-06 09:52:17 -07:00
2026-03-13 00:22:55 +11:00
2026-05-12 22:13:55 +10:00
2026-04-03 15:47:26 -05:00
2026-01-08 15:24:11 +04:00
2026-05-13 18:55:24 +10:00
2026-02-19 09:02:19 +00:00
2026-04-29 16:38:26 -07:00
2026-01-29 13:50:15 +01:00
2026-05-07 08:38:20 -06:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-04-28 13:06:45 -07:00
2026-03-29 20:11:30 -04:00
2026-05-11 08:41:17 -06:00
2026-03-05 20:29:49 +00:00
2026-03-19 21:51:26 +00:00
2026-04-22 12:34:17 +02:00
2026-01-08 15:24:11 +04:00
2026-04-28 08:56:36 +01:00
2026-04-27 23:26:17 +03:00
2026-03-18 09:30:22 -05:00
2026-04-02 23:51:02 +02:00
2026-05-11 14:27:40 -05:00
2026-01-30 13:30:06 +01:00
2026-04-27 08:26:07 -06:00
2026-05-05 12:56:06 +10:00
2026-05-08 16:45:14 -04:00
2026-02-19 09:02:19 +00:00
2026-04-07 07:24:53 -07:00
2026-05-07 17:10:50 +01:00
2026-05-11 09:07:30 -06:00
2026-04-29 16:38:26 -07:00
2026-05-11 08:41:17 -06:00
2026-01-08 15:24:11 +04:00
2026-03-18 09:30:22 -05:00
2026-05-06 09:27:24 -07:00
2026-03-25 22:15:27 +00:00
2026-04-26 14:49:10 -07:00
2026-05-05 02:54:03 +05:00
2026-04-15 19:53:10 +01:00
2026-05-11 08:41:17 -06:00
2026-03-13 20:37:41 -07:00
2026-05-12 08:54:53 -04:00
2026-03-12 18:07:52 +02:00
2025-11-17 13:24:12 +00:00
2026-03-23 09:52:34 +00:00
2026-05-05 02:54:03 +05:00
2026-04-01 09:54:59 -04:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-04-21 11:11:56 +01:00
2026-01-08 15:24:11 +04:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-05-12 22:13:55 +10:00
2026-05-11 08:41:17 -06:00
2026-05-12 22:13:55 +10:00
2026-05-05 02:54:03 +05:00
2026-03-13 14:09:39 +00:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-04-21 11:36:20 +10:00
2026-05-12 14:05:08 +00:00
2026-05-12 14:51:55 +02:00
2026-05-05 02:54:03 +05:00
2026-05-11 16:23:07 +10:00
2026-01-12 18:19:19 -08:00
2026-05-05 02:54:03 +05:00
2026-03-23 19:54:43 +00:00
2026-05-05 02:54:03 +05:00
2025-12-15 11:26:41 -06:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-03-23 19:54:43 +00:00
2026-05-05 02:54:03 +05:00
2026-03-04 18:01:56 -08:00
2026-05-05 02:54:03 +05:00
2026-04-22 12:34:17 +02:00
2026-05-03 11:31:48 -04:00
2026-05-12 08:54:53 -04:00
2026-05-12 08:54:53 -04:00
2026-04-07 12:25:32 -06:00
2026-05-05 02:54:03 +05:00
2026-02-13 08:19:07 -06:00
2026-05-05 02:54:03 +05:00
2026-03-25 09:53:06 +00:00
2026-01-15 12:41:28 +03:00
2026-03-23 21:03:34 +00:00
2026-03-25 09:53:06 +00:00
2026-03-06 09:14:11 +00:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-05-06 09:27:24 -07:00
2026-05-06 09:27:24 -07:00
2026-05-06 09:27:24 -07:00
2026-02-19 09:02:19 +00:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-04-10 09:50:11 -05:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-05-11 08:41:17 -06:00
2026-05-06 14:14:10 -05:00
2026-05-11 12:43:52 -05:00
2026-05-11 12:43:52 -05:00
2026-05-11 12:43:52 -05:00
2026-05-11 12:43:52 -05:00
2026-04-23 06:20:35 +10:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-03-25 09:53:06 +00:00
2026-05-05 02:54:03 +05:00
2026-05-12 10:09:34 +02:00
2026-05-12 10:09:34 +02:00
2026-04-29 12:57:47 -06:00
2026-04-13 07:24:34 -06:00
2026-05-06 09:27:24 -07:00
2026-04-15 11:31:43 +02:00
2026-04-26 14:49:10 -07:00
2026-05-05 02:54:03 +05:00
2026-01-12 18:19:19 -08:00
2026-05-05 02:54:03 +05:00
2026-05-01 13:29:33 +01:00
2026-05-01 13:29:33 +01:00
2026-05-01 13:29:33 +01:00
2026-04-20 21:33:35 +10:00
2026-05-11 12:43:52 -05:00
2026-05-05 02:54:03 +05:00
2026-05-11 14:27:40 -05:00
2026-03-12 18:07:52 +02:00
2026-05-11 14:27:40 -05:00
2026-05-05 02:54:03 +05:00
2026-02-03 09:45:23 +00:00
2026-05-05 02:54:03 +05:00
2026-05-05 02:54:03 +05:00
2026-05-12 14:55:56 +02:00
2026-05-13 11:55:41 +02:00
2026-05-11 11:03:38 +02:00
2026-05-11 12:43:52 -05:00
2026-05-05 02:54:03 +05:00
2026-01-08 15:24:11 +04:00