/

CVE-2026-71271

Severity:

HIGH RISK

(8.5)

Server-Side Request Forgery (CWE-918) in Memos Webhooks

CVE-2026-71271

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Internal Service Exposure and Unauthorized Server-Side Requests

Severity:

HIGH RISK

(8.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Memos webhook URL validation can fail to recognize addresses in the 0.0.0.0/8 range as reserved, allowing a webhook to target 0.0.0.0. On Linux, such connections may be redirected to the server's loopback interface, enabling requests to internal-only services when an attacker can register or control a webhook URL.

Affected context

The issue occurs in Memos deployments that accept attacker-influenced webhook URLs and validate their destination using the webhook-specific reserved-IP logic. Risk is present when the server can make outbound HTTP requests to loopback or other internal services, and the validation does not treat unspecified addresses as prohibited destinations.

Exploit preconditions

  • Attack surface: Memos webhook registration or configuration
  • Required access: Permission to create or modify a webhook URL, depending on deployment authorization controls
  • Trigger point: Server-side delivery of an HTTP webhook request
  • Why exploitation is possible: The destination validation omits 0.0.0.0/8 and does not reject unspecified addresses, while the operating system may route connections to 0.0.0.0 through the local loopback interface

Why this happens

The vulnerability is caused by incomplete destination filtering in the webhook URL validation logic. The reserved CIDR set omits the unspecified IPv4 range, and the implementation does not apply an explicit unspecified-address check such as ip.IsUnspecified(). This maps to CWE-918: Server-Side Request Forgery, where attacker-influenced URLs can cause a server to issue requests to unintended internal destinations.

Potential impact

  • An attacker may access HTTP services bound only to the Memos host
  • Internal administrative or diagnostic endpoints could be exposed
  • The server may disclose response content from loopback services
  • Internal network discovery or follow-on attacks could become possible
  • Requests could reach services using the server's network privileges

General mitigation guidance

Mitigation generally focuses on making outbound URL validation deny-by-default and treating all non-public destinations as untrusted.

Common defensive patterns include:

  • Rejecting unspecified, loopback, link-local, private, reserved, and otherwise non-routable addresses
  • Maintaining a complete and centrally shared destination-classification policy
  • Resolving hostnames before connection and validating every resulting address
  • Rechecking destinations after redirects and preventing unsafe redirect targets
  • Restricting outbound network access with egress controls and service-level allowlists
  • Running webhook delivery with minimal network and operating-system privileges
  • Returning only the minimum necessary response data to webhook callers

These controls reduce reliance on incomplete IP lists and limit the impact of validation gaps.

How teams detect issues like this

Organizations can look for SSRF exposure through:

  • Static analysis of webhook and HTTP-client code for attacker-controlled URLs
  • Code review checks for incomplete private or reserved IP lists
  • Tests covering unspecified, loopback, link-local, private, mapped, and redirect destinations
  • Monitoring webhook requests to loopback, private ranges, metadata endpoints, and unusual ports
  • Egress firewall or service-mesh policies that alert on unexpected internal destinations

Automated security review tools may help identify URL-fetching flows, but policy tests and runtime network telemetry remain important.

Sources

SourceLink
github.comgithub.com/usememos/memos
github.comgithub.com/usememos/memos/blob/main/internal/webhook/validate.go

Frequently asked

questions

It can be exploitable through the Memos application when a remote or lower-privileged user is allowed to register or control webhook URLs and the server can reach internal HTTP services.

Authentication requirements depend on Memos' webhook authorization settings. The essential prerequisite is the ability to create or modify a webhook destination.

Use deny-by-default URL validation that explicitly rejects unspecified and loopback addresses, covers all non-public address classes, validates resolved addresses, and rechecks redirects.

Centralize SSRF protections, test all special-purpose address ranges, apply outbound network restrictions, and monitor server-side requests to internal destinations.

Find out what's already
exploitable in your codebase.