Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSteal victim's refresh token (XSS/phishing/interception)
-
DeliveryVictim changes password believing access is revoked
-
ExploitCall RefreshToken RPC with stolen token
-
ExecutionReceive new access token and rotated refresh token
-
PersistAccess victim's memos and account data
-
ImpactRepeat token rotation to maintain indefinite persistence
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
|
| Exploitation Conditions | Exploitation requires that the attacker first obtain a valid Memos refresh token through a separate attack vector such as cross-site scripting, phishing, session hijacking, or network interception - possession of this token is the sole prerequisite enforced by the server. The target instance must be running Memos 0.26.0 through 0.30.0. The vulnerability is most impactful when the victim changes their password in response to a suspected compromise: that action, which normally terminates session access, has no effect here. Exploitation is limited to accounts for which the attacker already holds a refresh token; unauthenticated attackers with no prior token cannot exploit this flaw directly. No special server-side configuration or feature flag is required - the RefreshToken RPC is a standard endpoint in the affected versions. |
| Impact | The CVSS 4.0 score of 8.6 reflects network-accessible exploitation (AV:N), low complexity (AC:L), no special attack requirements (AT:N), low privilege prerequisite (PR:L, representing possession of a stolen token), and no user interaction (UI:N), with High impact on both confidentiality and integrity (VC:H/VI:H). The real-world risk is specifically elevated as a post-compromise persistence mechanism: the attack is most dangerous after the victim has discovered and attempted to remediate an account compromise. A user changing their password to evict an attacker will find the password change is entirely ineffective if the attacker holds a refresh token. EPSS data is absent from the provided intelligence, and the vulnerability is not currently listed in CISA KEV. No public exploit code is referenced. Offsetting the severity, initial token theft is a prerequisite - this is not direct unauthenticated access - which limits the reachable population to accounts already partially compromised through phishing, XSS, network interception, or credential exposure. |
| Exploit ScenarioDerived | An attacker intercepts or steals a valid Memos refresh token - via XSS, phishing, or network interception - and learns the victim has changed their password in response. Rather than losing access, the attacker calls the RefreshToken RPC with the stolen token, receives a new access token and a rotated refresh token, and continues operating on the victim's account. The attacker can repeat this rotation indefinitely, maintaining persistent account access regardless of further password changes by the victim. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Persistent account takeover in Memos 0.26.0-0.30.0 is enabled by a failure to invalidate refresh tokens upon password change. An attacker who possesses a stolen refresh token can indefinitely call the RefreshToken RPC to rotate both the refresh token and obtain fresh access tokens, making the victim's password-change security response completely ineffective. No public exploit has been identified at time of analysis, but the vulnerability is straightforward to exploit once a token is obtained, and CVSS 4.0 rates the impact as High on both confidentiality and integrity.
RemediationAI
No explicit patched release version is identified in the available intelligence - the referenced source files link to v0.30.0 which is itself within the vulnerable range. Operators running Memos 0.26.0-0.30.0 should monitor the upstream repository at https://github.com/usememos/memos for a fix release and upgrade immediately upon availability. As an interim compensating control, administrators can force-invalidate all user sessions by rotating the application's JWT signing secret, which will instantly revoke all outstanding refresh and access tokens across all accounts at the cost of requiring all users to log in again. Additionally, restricting network access to the Memos instance to trusted networks or requiring VPN/mTLS access reduces the surface for token interception. The VulnCheck advisory (https://www.vulncheck.com/advisories/memos-0.26.0-through-0.30.0-insufficient-session-expiration-on-password-change) should be monitored for patch availability updates.
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 self-hosted, open-source note and memo application written in Go. The flaw resides in the authentication layer, specifically in the RefreshToken RPC handler (server/router/api/v1/user_service.go) and the authenticator (server/auth/authenticator.go), as referenced in the v0.30.0 source tree. CWE-613 (Insufficient Session Expiration) identifies the root cause: the application does not maintain a token revocation list or tie refresh token validity to the current credential version/hash. When a user changes their password - a standard account-recovery action - the server never marks previously issued refresh tokens as invalid, so any party holding a refresh token retains the ability to self-issue new access tokens in perpetuity. This is a session-management design flaw, not a memory-safety or injection issue.
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:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-accessible API endpoint, low complexity; PR:L reflects mandatory prior token possession; no availability impact or scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Memos versions 0.26.0 through 0.30.0 fail to revoke refresh tokens when a user changes their password, allowing attackers to maintain account access. An attacker with a stolen refresh token can call the RefreshToken RPC to obtain new access tokens and rotate the refresh token indefinitely, bypassing the password change security measure.
Executive ViewAI
Memos 0.26.0-0.30.0 allows attackers with stolen tokens to maintain permanent access to user accounts, completely bypassing password changes-a foundational security control. While no public exploit has been identified at time of analysis, the attack is straightforward to execute once a token is compromised. Organizations using affected versions must assume tokens are at risk and immediately invalidate them system-wide to prevent or contain account takeovers.
No vendor-released patch identified at time of analysis. Interim mitigations: revoke all refresh tokens immediately, force password resets for all users, implement strict rate-limiting on RefreshToken RPC endpoints, enforce maximum token lifetime of 15 minutes with mandatory re-authentication for sensitive operations, deploy log monitoring for impossible-travel patterns and duplicate token usage, and restrict token refresh to known IP ranges if operationally feasible.
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-69290
GHSA-47v8-26mf-hw38
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB