Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged Memos user
-
ExploitCall ListActivities / GetActivity API
-
ExecutionEnumerate sequential activity IDs
-
ImpactHarvest creator IDs, timestamps and private memo-comment references
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated account on the Memos instance at any privilege level (PR:L) - the attacker needs valid credentials but no administrative or creator rights over the targeted records. Affected deployments are Memos versions before 0.27.0 exposing the ActivityService ListActivities and GetActivity endpoints (default configuration; no special feature toggle is needed). Exploitation is enabled by activity records using a system-generated auto-incremented integer ID, making IDs trivially guessable via sequential enumeration. Limiting factors: exploitation is impossible for fully unauthenticated outsiders, and practical blast radius is far larger on instances that allow open/self-service user registration or host many tenants than on single-user or trusted-team instances. Disclosure is limited to activity metadata (creator IDs, timestamps, memo and related-memo comment references), not guaranteed full private memo content. |
| Impact | This is a genuine but modest-severity information-disclosure issue, not a top-tier emergency. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the 5.3 Medium score are internally consistent with the description: network-reachable, low-complexity, but requiring an authenticated low-privileged account (PR:L) and yielding only confidentiality impact (VC:L, with VI/VA:N). The signals do not conflict - attack vector, privilege requirement, and impact all align with a horizontal authorization bypass that leaks activity metadata rather than full content. No EPSS score, SSVC decision, or KEV entry was provided in the input, and no public exploit is referenced, so exploitation-probability data is MISSING and cannot be asserted. Exploitation is conceptually trivial (sequential integer ID enumeration against the GetActivity endpoint), which raises practical likelihood for any instance that permits untrusted user registration, but the requirement for a valid account and the limited, metadata-only disclosure (creator IDs, timestamps, memo-comment references - not necessarily full private memo bodies) keep real-world risk in the moderate range. Prioritize patching on multi-tenant or public-signup Memos instances; treat single-user or trusted-group deployments as low urgency. |
| Exploit ScenarioDerived | An attacker registers or already holds a low-privileged account on a shared Memos instance, then repeatedly calls the GetActivity API (GET /api/v1/activities/{id}) incrementing the sequential, auto-incremented activity ID. Because the ActivityService performs no per-record authorization check, each response leaks another user's creator ID, activity timestamp, and the memo/related-memo references of comment activity - including activity tied to other users' private memos. No public exploit code is identified at time of analysis, but the attack requires only trivial ID iteration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Missing authorization in Memos before 0.27.0 lets any authenticated user enumerate ActivityService records and read activity metadata belonging to other users, including activity tied to private memos. The ListActivities and GetActivity API methods lack per-user authorization checks, and sequential activity IDs make it practical to page through creator IDs, timestamps, and memo-comment references. Exploitation requires a valid account but no elevated privileges; no public exploit code was identified at time of analysis.
RemediationAI
Upgrade to Memos 0.27.0 or later; the vendor-released fix is release v0.27.0, with the relevant upstream commit 04f239a2fc74f7090c779a6a7b8a08238fd31b88 and tracking issue 5651. No special feature toggle is documented for disabling this API, so patching is the primary control. Until upgrade, restrict the instance to trusted users, disable open/self-service registration and review existing accounts, and consider reverse-proxy blocking of /api/v1/activities and /api/v1/activities/* for untrusted callers, although this may break activity or notification UI features. Monitor API logs for sequential activity ID enumeration and unusual cross-user access, and place the instance behind a VPN or IP allowlist; see https://github.com/usememos/memos/releases/tag/v0.27.0 and https://www.vulncheck.com/advisories/memos-before-0.27.0-missing-authorization-via-activityservice-listactivities-getactivity for details.
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 a Go-based self-hosted memo and note application that exposes a gRPC/HTTP API defined through protobuf. The ActivityService ListActivities method (GET /api/v1/activities) and GetActivity method (GET /api/v1/activities/{id}) returned Activity resources containing creator, create_time, type, level, and ActivityMemoCommentPayload fields. The root cause is CWE-862 Missing Authorization: the handlers did not verify that the requesting user was authorized to view the activity or its referenced memo, and activity names use activities/{id} with system-generated auto-incremented integer IDs, making enumeration straightforward for an authenticated low-privileged user. The fix commit removes the activity_service.proto service and changes user notifications to embed MemoCommentPayload rather than expose activity_id, indicating the activity API surface was retired or reworked in 0.27.0. The CPE usememos:memos:* covers versions before 0.27.0.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network API with trivial ID enumeration (AC:L) but needs a valid low-privileged account (PR:L); only limited metadata is disclosed (C:L), with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Memos before 0.27.0 contains a missing authorization vulnerability in the ActivityService ListActivities and GetActivity API methods that allows authenticated users to view all users' activity records. Low-privileged attackers can enumerate sequential activity IDs to obtain creator IDs, timestamps, and memo-comment references, including activity on other users' private memos.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-105167
GHSA-599r-q6pw-w9jj
NVD
CVE.org
EPSS
Exploit-DB