Memos Webhook DNS Rebinding TOCTOU SSRF in safeDialContext()
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| usememos | memos | unaffected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Usememos | Memos |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.257% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Memos' webhook dispatch function safeDialContext() (internal/webhook/webhook.go) resolves the target hostname via net.DefaultResolver.LookupHost() and validates the resulting IPs against reserved ranges, but then dials net.JoinHostPort(host, port) using the original hostname rather than the already-validated IP address. Because net.Dialer.DialContext() performs its own independent DNS resolution, an attacker controlling DNS for the webhook's hostname (e.g. via a short TTL) can return a public, allowed IP during validation and a different, internal IP at dial time — a classic time-of-check/time-of-use DNS-rebinding bypass of the SSRF protection. | Memos' webhook dispatch function safeDialContext (internal/webhook/webhook.go) resolves the target hostname via net.DefaultResolver.LookupHost and validates the resulting IPs against reserved ranges, but then dials net.JoinHostPort(host, port) using the original hostname rather than the already-validated IP address. |
| Title | Memos - Webhook DNS Rebinding TOCTOU SSRF in safeDialContext() | Memos Webhook DNS Rebinding TOCTOU SSRF in safeDialContext() |
| Type | Values Removed | Values Added |
|---|---|---|
| Title | Memos Webhook DNS Rebinding TOCTOU SSRF in safeDialContext() | Memos - Webhook DNS Rebinding TOCTOU SSRF in safeDialContext() |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Usememos
Usememos memos |
|
| Vendors & Products |
Usememos
Usememos memos |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Memos' webhook dispatch function safeDialContext() (internal/webhook/webhook.go) resolves the target hostname via net.DefaultResolver.LookupHost() and validates the resulting IPs against reserved ranges, but then dials net.JoinHostPort(host, port) using the original hostname rather than the already-validated IP address. Because net.Dialer.DialContext() performs its own independent DNS resolution, an attacker controlling DNS for the webhook's hostname (e.g. via a short TTL) can return a public, allowed IP during validation and a different, internal IP at dial time — a classic time-of-check/time-of-use DNS-rebinding bypass of the SSRF protection. | |
| Title | Memos Webhook DNS Rebinding TOCTOU SSRF in safeDialContext() | |
| Weaknesses | CWE-367 | |
| References |
| |
| Metrics |
cvssV3_1
|