mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-08-22 12:12:18 -05:00
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.