kolaente
ce0d1355cf
fix(security): reject link shares in Webhook.ReadAll
...
The guard on Webhook.CanRead is unreachable: no route exposes a read-one
webhook, and DoReadAll never calls CanRead. Two paths were left open:
- the v2 user-webhook list passes a.GetID() into Webhook.UserID, which is
negative for a link share, so the w.UserID > 0 branch and its link share
check were skipped and the request fell through to the project branch with
project id 0, returning 404 instead of 403.
- the project branch never rejected link shares at all, so any holder of a
public share link could list the project's webhooks. target_url is a bearer
secret for Slack, Discord, Teams and Zapier.
Guard both by rejecting link shares at the top of ReadAll.
2026-08-04 13:40:11 +02:00
..
2026-07-03 16:56:03 +00:00
2026-04-20 18:55:06 +00:00
2026-04-20 18:55:06 +00:00
2026-07-07 11:38:33 +02:00
2026-07-03 16:56:03 +00:00
2026-07-03 16:56:03 +00:00
2026-07-03 16:56:03 +00:00
2026-08-02 16:21:50 +02:00
2026-08-02 16:21:50 +02:00
2026-03-30 12:28:15 +00:00
2026-03-30 12:28:15 +00:00
2026-03-30 12:28:15 +00:00
2026-07-29 07:58:17 +00:00
2026-07-19 18:59:34 +02:00
2026-07-28 06:59:04 +00:00
2026-07-28 06:59:04 +00:00
2026-08-04 13:40:11 +02:00
2026-05-01 14:44:10 +00:00
2026-08-04 13:40:11 +02:00
2026-08-02 16:21:50 +02:00
2026-08-02 16:21:50 +02:00
2026-06-09 20:13:02 +00:00
2026-05-20 21:02:14 +00:00
2026-05-20 21:02:14 +00:00
2026-07-18 13:41:15 +00:00
2026-08-02 16:21:50 +02:00
2026-08-02 16:21:50 +02:00
2026-06-17 18:39:38 +00:00
2026-07-07 11:38:33 +02:00
2026-07-03 23:18:00 +02:00
2026-08-02 16:21:50 +02:00
2026-08-04 01:09:10 +02:00
2026-07-30 12:03:30 +02:00
2026-07-30 12:03:30 +02:00
2026-07-07 11:57:04 +00:00
2026-07-30 12:03:30 +02:00
2026-05-31 15:27:44 +02:00
2026-06-05 09:17:25 +00:00
2026-08-04 13:40:11 +02:00
2026-08-04 13:40:11 +02:00
2026-08-02 16:21:50 +02:00
2026-08-04 13:40:11 +02:00
2026-06-02 11:55:25 +00:00
2026-07-07 11:38:33 +02:00
2026-06-08 13:54:09 +00:00
2026-07-29 07:58:17 +00:00
2026-07-29 07:58:17 +00:00
2026-07-29 07:58:17 +00:00
2026-07-29 07:58:17 +00:00
2026-07-29 07:58:17 +00:00
2026-05-15 17:25:09 +02:00
2026-07-29 07:58:17 +00:00
2026-03-27 23:05:04 +00:00
2026-06-29 17:18:05 +02:00
2026-06-19 10:15:58 +02:00
2026-08-04 01:09:10 +02:00
2026-07-26 09:39:41 +00:00
2026-07-29 07:33:35 +00:00
2026-07-19 18:59:34 +02:00
2026-07-19 18:59:34 +02:00
2026-04-20 18:55:06 +00:00
2026-07-29 22:53:46 +02:00
2026-07-19 18:59:34 +02:00
2026-04-20 18:55:06 +00:00
2026-06-18 20:57:05 +00:00
2026-07-19 18:59:34 +02:00
2026-08-04 01:09:10 +02:00
2026-08-04 01:09:10 +02:00
2026-07-29 07:33:35 +00:00
2026-07-19 18:59:34 +02:00
2026-08-02 16:21:50 +02:00
2026-08-04 01:09:10 +02:00
2026-07-19 18:59:34 +02:00
2026-06-08 13:54:09 +00:00
2026-07-29 07:33:35 +00:00
2026-07-29 22:28:31 +02:00
2026-06-18 20:57:05 +00:00
2026-06-18 20:57:05 +00:00
2026-04-09 16:22:56 +00:00
2026-07-01 12:42:32 +00:00
2026-07-28 23:41:49 +02:00
2026-07-28 23:41:49 +02:00
2026-07-06 15:45:55 +00:00
2026-07-30 12:03:30 +02:00
2026-07-19 18:59:34 +02:00
2026-06-12 08:56:08 +00:00
2026-06-03 19:57:26 +00:00
2026-07-07 11:57:04 +00:00
2026-07-07 11:57:04 +00:00
2026-06-01 14:13:39 +02:00
2026-07-03 19:58:39 +02:00
2026-08-02 16:21:50 +02:00
2026-04-05 12:20:35 +00:00
2026-06-09 20:42:00 +00:00
2026-07-29 07:33:35 +00:00
2026-06-17 21:16:41 +00:00
2026-07-06 15:45:55 +00:00
2026-07-19 14:16:07 +00:00
2026-07-19 18:59:34 +02:00
2026-05-31 12:56:57 +00:00
2026-07-30 11:32:24 +02:00
2026-08-02 16:21:50 +02:00
2026-08-04 13:40:11 +02:00
2026-06-18 20:57:05 +00:00
2026-08-04 13:40:11 +02:00
2026-06-18 20:57:05 +00:00
2026-07-07 11:38:33 +02:00
2026-06-12 08:56:08 +00:00
2026-06-08 13:54:09 +00:00
2026-07-29 07:33:35 +00:00
2026-07-19 18:59:34 +02:00
2026-05-01 14:44:10 +00:00
2026-07-19 18:59:34 +02:00
2026-07-02 19:39:00 +02:00
2026-06-18 20:57:05 +00:00
2026-08-04 13:40:11 +02:00
2026-07-28 17:25:57 +02:00
2026-08-04 13:40:11 +02:00