CVE-2025-65796

4.3 MEDIUM

📋 TL;DR

CVE-2025-65796 is an improper access control vulnerability in usememos memos v0.25.2 that allows authenticated users with low-level privileges to delete reactions (likes, comments, etc.) on other users' memos. This affects all deployments running the vulnerable version of the memos note-taking software. The vulnerability undermines data integrity and user trust in the platform.

💻 Affected Systems

Products:
  • usememos/memos
Versions: v0.25.2
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using the vulnerable version. Self-hosted instances and cloud deployments are both vulnerable if running the affected version.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Malicious insiders or compromised low-privilege accounts could systematically delete reactions across the platform, causing data loss, disrupting user engagement metrics, and potentially enabling harassment campaigns by removing positive feedback from targeted users.

🟠

Likely Case

Disgruntled users or curious low-privilege accounts delete reactions on memos they shouldn't have access to, causing minor data integrity issues and user complaints about missing likes or comments.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to isolated incidents that can be quickly detected and rolled back through database backups.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access with any user account. The vulnerability is in the API endpoint authorization logic for reaction deletion.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v0.25.3 or later

Vendor Advisory: https://github.com/usememos/memos/pull/5217

Restart Required: Yes

Instructions:

1. Backup your memos database. 2. Stop the memos service. 3. Update to v0.25.3 or later using your deployment method (Docker, binary, package manager). 4. Restart the memos service. 5. Verify the update was successful.

🔧 Temporary Workarounds

Temporary API restriction

all

Implement web application firewall rules or reverse proxy configuration to restrict access to reaction deletion endpoints for low-privilege users.

# Example nginx location block to restrict DELETE /api/v1/memos/:memoId/reactions/:reactionId
location ~ ^/api/v1/memos/\d+/reactions/\d+$ {
    if ($request_method = DELETE) {
        return 403;
    }
}

🧯 If You Can't Patch

  • Implement strict user permission auditing and monitoring for reaction deletion events.
  • Enable detailed logging of all API calls to reaction endpoints and set up alerts for suspicious patterns.

🔍 How to Verify

Check if Vulnerable:

Check if your memos version is exactly v0.25.2 by visiting /api/v1/status endpoint or checking the application version in the UI.

Check Version:

curl -s http://your-memos-instance/api/v1/status | grep -o '"version":"[^"]*"'

Verify Fix Applied:

After updating, test with a low-privilege account attempting to delete a reaction on another user's memo - this should now be properly rejected with a 403 error.

📡 Detection & Monitoring

Log Indicators:

  • Multiple DELETE requests to /api/v1/memos/*/reactions/* from low-privilege user accounts
  • 403 errors followed by successful 200 responses on reaction deletion endpoints

Network Indicators:

  • Unusual patterns of DELETE requests to reaction endpoints outside normal user behavior

SIEM Query:

source="memos.log" AND (uri_path="/api/v1/memos/*/reactions/*" AND http_method="DELETE") AND user_role="USER" | stats count by src_user

🔗 References

📤 Share & Export