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.
Published: 2026-08-05
Score: 8.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Memos' webhook dispatch function safeDialContext performs DNS resolution of the target hostname via net.DefaultResolver.LookupHost, validates the returned IPs against reserved ranges, but then dials net.JoinHostPort(host, port) using the original hostname rather than the already‑validated IP address. This creates a time‑of‑check/time‑of‑use gap: an attacker who controls the DNS entry for the webhook hostname can provide a benign IP during validation and a private internal IP when the connection is made, effectively bypassing the intended SSRF guard and allowing the service to reach internal network resources that should otherwise be blocked. The flaw can lead to unauthorized disclosure of internal data or further exploitation of internal services.

Affected Systems

The flaw exists in the usememos Memos web application. No specific product version was given, so any version before the patch that includes the safeDialContext() fix is potentially vulnerable. Administrators should consult the Memos release notes to determine if the current installation includes the correction.

Risk and Exploitability

The CVSS v3.1 score is 8.5, classifying it as High severity. EPSS of 0.00175 indicates a very low exploitation probability, and the vulnerability is not yet listed in CISA’s KEV catalog, so the exact likelihood of exploitation remains unknown. Nevertheless, the attack vector involves remote control of a DNS provider, which is a realistic scenario for attackers who can influence DNS or are in possession of short‑TTL records. The exploitation directly leads to SSRF to internal addresses, posing significant confidentiality and availability risks.

Generated by OpenCVE AI on August 10, 2026 at 21:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Memos to the newest release that contains the safeDialContext() fix, ensuring the DNS validation logic is applied to the resolved IP address used for dialing.
  • Remove or neutralize any webhook destinations that rely on domain names controlled by external parties; instead, use pre‑known static IP addresses or restrict webhook hostnames to a whitelist of allowed addresses.
  • Implement firewall or ACL restrictions on the host running Memos to block outbound connections to internal network ranges (e.g., 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12) and allow only connections to approved external endpoints.

Generated by OpenCVE AI on August 10, 2026 at 21:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 12:00:00 +0000

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()

Mon, 10 Aug 2026 11:45:00 +0000

Type Values Removed Values Added
Title Memos Webhook DNS Rebinding TOCTOU SSRF in safeDialContext() Memos - Webhook DNS Rebinding TOCTOU SSRF in safeDialContext()

Wed, 05 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 15:00:00 +0000

Type Values Removed Values Added
First Time appeared Usememos
Usememos memos
Vendors & Products Usememos
Usememos memos

Wed, 05 Aug 2026 13:15:00 +0000

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

{'score': 8.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-10T11:46:48.194Z

Reserved: 2026-08-05T12:23:34.967Z

Link: CVE-2026-71272

cve-icon Vulnrichment

Updated: 2026-08-05T15:54:38.292Z

cve-icon NVD

Status : Received

Published: 2026-08-05T13:24:51.573

Modified: 2026-08-10T12:17:29.693

Link: CVE-2026-71272

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T21:15:07Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition