lowVulnerability

CVE-2026-73087

## Summary The `isBlockedIP` SSRF guard in Dozzle's webhook notification dispatcher blocks loopback, link-local, multicast, and unspecified addresses but does not recognize IPv6 transition mechanism addresses (RFC 3056 6to4, RFC 6052 NAT64, RFC 4380 Teredo) that embed arbitrary IPv4 addresses. An authenticated user can bypass the guard to reach loopback services, cloud metadata endpoints (169.254.169.254), and other blocked ranges via webhook notification URLs. ## Affected component / versions - Package: `github.com/amir20/dozzle` - Affected versions: all versions with SSRF guard (current HEAD [`b9df313`](https://github.com/amir20/dozzle/commit/b9df31356fc024e6768a1aac605844dc041d95ee)) - Vulnerable code: `internal/notification/dispatcher/webhook.go` ## Details ### Root cause (CWE-918) [`internal/notification/dispatcher/webhook.go:32-51`](https://github.com/amir20/dozzle/blob/b9df31356fc024e6768a1aac605844dc041d95ee/internal/notification/dispatcher/webhook.go#L32-L51): ```go func isBlockedIP(ip net.IP) bool { if ip.IsLoopback() || ip.IsLinkLocalUnicast() || ip.IsLinkLocalMulticast() || ip.IsMulticast() || ip.IsInterfaceLocalMulticast() || ip.IsUnspecified() { return true } if v4 := ip.To4(); v4 != nil && zeroNetV4.Contains(v4) { return true } if ip.Equal(net.IPv4bcast) { return true } return false } ``` The guard intentionally allows RFC 1918 private ranges for self-hosted webhook targets, but blocks loopback (127.0.0.0/8, ::1), link-local (169.254.0.0/16, fe80::/10), and other non-routable addresses. IPv6 transition mechanism addresses bypass all these checks: | Mechanism | Prefix | Embeds | `isBlockedIP` result | |-----------|--------|--------|---------------------| | 6to4 | `2002::/16` | any IPv4 in bits 16-47 | `false` | | NAT64 WKP | `64:ff9b::/96` | any IPv4 in bits 96-127 | `false` | | Teredo | `2001:0000::/32` | any IPv4 in bits 96-127 | `false` | ### Reachability / trust boundary The `safeDialContext` function (line 53) res

Properties

ghsa_id
GHSA-p2w3-6x73-2f6x
severity
low
summary
Dozzle: SSRF guard bypass via IPv6 transition addresses (6to4/NAT64/Teredo) in webhook notification dispatcher
epss_score
0.00267
cve_id
CVE-2026-73087
is_ghsa_only
false
ghsa_published
2026-09-08T18:11:56Z
source_url
https://github.com/advisories/GHSA-p2w3-6x73-2f6x
epss_percentile
0.18676
ghsa_updated
2026-09-08T18:11:57Z

Related Entities (5)

ENRICHED_BY (1)

[Source]FIRST EPSS

VULNERABLE_TO (1)

[Software]go/github.com/amir20/dozzle

AFFECTS (1)

[Software]go/github.com/amir20/dozzle

HAS_WEAKNESS (1)

[Weakness]Server-Side Request Forgery (SSRF)

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-73087 — Ninja Signal Threat Intelligence | Ninja Signal