documenso/packages/lib/server-only/webhooks
Lucas Smith 6b1b1d0417
fix: improve webhook execution (#2608)
Webhook URLs were being fetched without validating whether they
resolved to private/loopback addresses, exposing the server to SSRF.

Current SSRF is best effort and fail open, you should never host
services that
you cant risk exposure of.

This extracts webhook execution into a shared module that validates
URLs against private IP ranges (including DNS resolution), enforces
timeouts, and disables redirect following. The resend route now
queues through the job system instead of calling fetch inline.
2026-03-13 15:02:09 +11:00
..
trigger feat: per-recipient envelope expiration (#2519) 2026-02-20 11:36:20 +11:00
zapier fix: improve webhook execution (#2608) 2026-03-13 15:02:09 +11:00
assert-webhook-url.test.ts fix: improve webhook execution (#2608) 2026-03-13 15:02:09 +11:00
assert-webhook-url.ts fix: improve webhook execution (#2608) 2026-03-13 15:02:09 +11:00
create-webhook.ts feat: add organisations (#1820) 2025-06-10 11:49:52 +10:00
delete-webhook-by-id.ts feat: add organisations (#1820) 2025-06-10 11:49:52 +10:00
edit-webhook.ts feat: add organisations (#1820) 2025-06-10 11:49:52 +10:00
execute-webhook-call.ts fix: improve webhook execution (#2608) 2026-03-13 15:02:09 +11:00
get-all-webhooks-by-event-trigger.ts fix: invalid folder queries (#1898) 2025-07-16 14:37:55 +10:00
get-webhook-by-id.ts feat: test webhook functionality (#1886) 2025-07-14 15:13:56 +10:00
get-webhooks-by-team-id.ts feat: add organisations (#1820) 2025-06-10 11:49:52 +10:00
is-private-url.test.ts fix: improve webhook execution (#2608) 2026-03-13 15:02:09 +11:00
is-private-url.ts fix: improve webhook execution (#2608) 2026-03-13 15:02:09 +11:00
trigger-test-webhook.ts feat: test webhook functionality (#1886) 2025-07-14 15:13:56 +10:00