Memos' webhook URL validation, isReservedIP() (internal/webhook/validate.go), checks a candidate...
Summary
SSRF reported (CVE-2026-71271). Confidential information can be exposed externally.
Original description
The description as published by the source.
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.
Source: NIST National Vulnerability Database NVD GitHub Advisory
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
Memosのwebhook URLバリデーションでは、予約されたCIDRリストが0.0.0.0/8を省略しているため、攻撃者がwebhook URLとしてhttp://0.0.0.0:PORT/を登録することで、このバリデーションを回避可能です。これにより、Memosサーバーが自分自身のループバックインターフェイスに外向きHTTPリクエストを行い、内部専用のサービスが露出されるリスクがあります。
Memosのwebhook URLバリデーションの脆弱性。
内部/webhook/validate.goのisReservedIP()関数。
攻撃者が内部サービスを露出させる可能性があるため、深刻。
isReservedIP()関数にて0.0.0.0/8を含むように、ip.IsUnspecified()を呼び出して予約IPチェックを拡充する。
不要なwebhook URLの登録を管理画面で制限する。
0.0.0.0を使用したwebhook URLの登録履歴を監視する。
References
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov
- advisory github.com
- web github.com