Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privileged Memos account
-
DeliveryRegister webhook URL http://0.0.0.0:PORT/
-
ExploitisReservedIP() misses 0.0.0.0, validation passes
-
ExecutionTrigger webhook-generating memo event
-
PersistMemos server connects to own loopback service
-
ImpactExfiltrate internal service response data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a valid, low-privileged Memos account with permission to create or modify webhooks, as reflected by PR:L in the CVSS vector. The Memos server must be running on a Linux host: the 0.0.0.0-to-loopback kernel routing behavior that makes this SSRF reachable is Linux-specific and does not apply to Windows or macOS deployments. No non-default configuration of Memos is required - any standard Linux-hosted instance permitting webhook registration by non-admin users is vulnerable. Exploitation is bounded by the services actually listening on loopback at the time of the request; impact escalates significantly if unauthenticated services such as Redis, Docker API, or a local admin panel are present. The requirement for authenticated access is the primary limiting factor: unauthenticated external actors cannot register webhooks. |
| Impact | The CVSS 8.5 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N) accurately represents the real-world risk profile. The Changed Scope and High Confidentiality ratings are the primary risk drivers: SSRF to loopback in containerized or cloud-hosted environments routinely exposes unauthenticated internal APIs, credential stores, or infrastructure metadata, which can escalate to full system compromise. The PR:L requirement is a meaningful constraint - unauthenticated actors cannot register webhooks, so the attack surface is limited to users holding valid Memos accounts. The Linux-specific kernel routing behavior is a genuine scope limiter: Windows and macOS do not route 0.0.0.0 to loopback in the same manner, restricting exploitation to Linux deployments. No EPSS score was provided in the intelligence data, so exploitation probability cannot be quantified numerically; however, SSRF-to-loopback is a well-understood, low-skill technique once account access is obtained. The wildcard CPE (version *) with no confirmed upper boundary means all deployed instances should be treated as vulnerable - no patch version was available at time of analysis, which elevates urgency for organizations without compensating network controls. |
| Exploit ScenarioDerived | An attacker holding a low-privileged Memos account navigates to the webhook configuration interface and registers a URL such as http://0.0.0.0:2375/ or http://0.0.0.0:6379/, targeting Docker daemon or Redis ports commonly bound to loopback on self-hosted deployments. When any memo event triggers the webhook, the Memos server calls isReservedIP(), passes validation because 0.0.0.0 is not in the checked CIDR list, and issues an outbound HTTP GET to its own loopback interface on the specified port - returning any plaintext response body to the attacker as webhook delivery data. No public proof-of-concept code has been identified at time of analysis, but the technique requires only a standard HTTP client and knowledge of common loopback service ports. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
Webhook URL validation bypass in Memos allows authenticated users to trigger Server-Side Request Forgery via the 0.0.0.0 address notation, causing the server to make outbound HTTP requests to its own loopback interface and exposing internal-only services, with a CVSS 8.5 score reflecting Changed Scope and High Confidentiality impact. The root cause is a code-divergence defect: isReservedIP() in internal/webhook/validate.go omits the 0.0.0.0/8 CIDR block and never calls ip.IsUnspecified(), while the correctly implemented sibling function isInternalIP() in internal/httpgetter/html_meta.go does both. No public exploit code or CISA KEV listing has been identified at time of analysis, but the low attack complexity and standard SSRF-to-loopback technique make this a realistic risk on any Linux-hosted Memos instance with multi-user access.
RemediationAI
No vendor-released patch has been identified at time of analysis; monitor the Memos GitHub repository at https://github.com/usememos/memos for a patched release and apply it immediately upon availability. As the highest-priority compensating control, restrict webhook creation permissions to trusted administrative accounts only, directly reducing the PR:L attack surface by preventing low-privilege users from registering arbitrary URLs; the trade-off is reduced self-service capability for regular users. Implement host-level or container egress firewall rules blocking outbound HTTP connections from the Memos process to 0.0.0.0/8, 127.0.0.0/8, and any other loopback or internal CIDR ranges, so that even if a bypass is triggered the TCP connection is dropped before reaching sensitive services; note that this will also block any legitimate webhook integrations targeting internal endpoints, which must be explicitly re-permitted. Additionally, audit all existing webhook registrations in the Memos database for URLs containing 0.0.0.0 or other reserved address notations to identify whether exploitation has already occurred.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Memos is an open-source self-hosted memo and note-taking web application identified by CPE cpe:2.3:a:usememos:memos:*:*:*:*:*:*:*:*. The vulnerability is a CWE-918 (Server-Side Request Forgery) rooted in incomplete IP address validation within the webhook registration subsystem. The function isReservedIP() in internal/webhook/validate.go validates candidate webhook destination IPs against a hardcoded reserved CIDR list but fails to include 0.0.0.0/8 and does not call ip.IsUnspecified(). On Linux, the kernel routes any TCP connection targeting 0.0.0.0 to the loopback interface (127.0.0.1), meaning a webhook URL of http://0.0.0.0:PORT/ passes all validation checks yet causes the Memos process to connect to itself. The explicit contrast with isInternalIP() in internal/httpgetter/html_meta.go - which correctly handles this case - indicates the two functions diverged during separate development or modification cycles rather than representing a design-level oversight. The CVSS Changed Scope metric (S:C) reflects the ability to reach services beyond Memos itself, such as unauthenticated admin APIs, Redis instances, Docker daemons, or cloud metadata endpoints bound to loopback.
Know when Memos gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
Webhook registration is network-accessible and requires only a low-privileged account; Changed Scope and High Confidentiality reflect SSRF reaching loopback services outside Memos' trust boundary.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
DescriptionCVE.org
Memos' webhook URL validation, isReservedIP() (internal/webhook/validate.go), checks a candidate IP against a reservedCIDRs list that omits 0.0.0.0/8 and never calls ip.IsUnspecified() - unlike the correctly implemented sibling function isInternalIP() in internal/httpgetter/html_meta.go, which does. Because Linux redirects connections to 0.0.0.0 to loopback (127.0.0.1), an attacker registering a webhook URL of http://0.0.0.0:PORT/ bypasses the reserved-IP check and causes the Memos server to make outbound HTTP requests to its own loopback interface, exposing internal-only services.
Executive ViewAI
A validation bypass in Memos' webhook feature allows authenticated users to exploit server-side request forgery (SSRF) and access internal-only services on the same server. This exposes sensitive internal APIs, databases, and services to any authenticated Memos user, creating insider-risk and privilege-escalation vectors. Organizations with multi-user Memos deployments face immediate exposure of internal systems.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict webhook feature to administrators only; (2) implement egress firewall rules blocking outbound connections to 127.0.0.0/8 and internal networks from the Memos process; (3) enable audit logging for all webhook creation, modification, and execution events; (4) monitor egress traffic from the Memos server for HTTP requests to reserved/loopback addresses.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
elestio memos v0.23.0 is vulnerable to Server-Side Request Forgery (SSRF) due to insufficient validation of user-supplie
Authorization Bypass Through User-Controlled Key in GitHub repository usememos/memos prior to 0.9.0. Rated critical seve
Cross-site Scripting (XSS) - Stored in GitHub repository usememos/memos prior to 0.9.1. Rated critical severity (CVSS 9.
Cross-site Scripting (XSS) - Stored in GitHub repository usememos/memos prior to 0.9.1. Rated critical severity (CVSS 9.
Cross-Site Request Forgery (CSRF) in GitHub repository usememos/memos prior to 0.15.1. Rated high severity (CVSS 8.8), t
Improper Privilege Management in GitHub repository usememos/memos prior to 0.13.2. Rated high severity (CVSS 8.8), this
Cross-Site Request Forgery (CSRF) in GitHub repository usememos/memos prior to 0.9.1. Rated high severity (CVSS 8.8), th
Improper Access Control in GitHub repository usememos/memos prior to 0.9.1. Rated high severity (CVSS 8.8), this vulnera
Improper Privilege Management in GitHub repository usememos/memos prior to 0.9.1. Rated high severity (CVSS 8.8), this v
Authorization Bypass Through User-Controlled Key in GitHub repository usememos/memos prior to 0.9.1. Rated high severity
Improper Access Control in GitHub repository usememos/memos prior to 0.9.0. Rated high severity (CVSS 8.8), this vulnera
Improper Authorization in GitHub repository usememos/memos prior to 0.9.0. Rated high severity (CVSS 8.8), this vulnerab
EUVD-2026-53356
GHSA-jjh5-p3gc-84xr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB