vikunja/pkg/notifications
kolaente 154a96674d fix(notifications): strip remote images from notification emails
User-controlled fields rendered into notification emails (task title via the
conversational header, comment and description bodies) were sanitized with a
bluemonday UGCPolicy that permits remote <img> sources. An attacker with write
access to a shared project could therefore inject an external image that acts
as a tracking pixel in a subscriber's inbox, leaking email-open time and IP.

Restrict notification-email images to inline data URIs (used by avatars) by
adding a RewriteSrc hook that blanks any non-data image src. The policy was
duplicated in three places, so extract it into newNotificationSanitizer.

Refs GHSA-2vr2-r3qw-rjvq
2026-06-11 06:53:37 +00:00
..
database.go docs(api/v2): add doc/readOnly tags to notification model fields 2026-06-07 10:05:24 +00:00
db.go feat: register Vikunja tables with db package at init 2026-03-04 15:37:54 +01:00
events.go feat(websocket): add notification event with XORM AfterInsert dispatch 2026-04-02 16:30:23 +00:00
logo.png feat: embed the vikunja logo as inline attachment 2022-06-30 14:21:17 +00:00
mail.go feat: add conversational email template and rendering 2026-03-08 16:03:47 +01:00
mail_render.go fix(notifications): strip remote images from notification emails 2026-06-11 06:53:37 +00:00
mail_test.go fix(notifications): strip remote images from notification emails 2026-06-11 06:53:37 +00:00
main_test.go feat(websocket): add notification event with XORM AfterInsert dispatch 2026-04-02 16:30:23 +00:00
markdown_escape.go fix(notifications): escape markdown in user-controlled strings in email lines 2026-04-09 15:44:04 +00:00
markdown_escape_test.go fix(notifications): escape markdown in user-controlled strings in email lines 2026-04-09 15:44:04 +00:00
notification.go feat: add Atom feed for user notifications with API token auth (#2758) 2026-05-15 17:25:09 +02:00
notification_test.go feat: add Atom feed for user notifications with API token auth (#2758) 2026-05-15 17:25:09 +02:00
notify_disabled_test.go fix: isolate deletion notifications into per-user transactions 2026-02-25 11:03:02 +01:00
testing.go test: add tests for API token expiry notifications and cron 2026-03-30 12:28:15 +00:00