CVE-2025-53544

7.5 HIGH

📋 TL;DR

CVE-2025-53544 is a brute-force protection bypass vulnerability in Trilium Notes that allows unauthenticated attackers to guess the login password without triggering rate limiting. This affects all Trilium Notes instances below version 0.97.0, particularly those exposed to the internet. Since Trilium is a single-user application without username requirements, successful exploitation grants full access to the user's entire knowledge base.

💻 Affected Systems

Products:
  • Trilium Notes
Versions: All versions below 0.97.0
Operating Systems: All platforms (Windows, Linux, macOS)
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations are vulnerable. The risk is highest for instances exposed to the internet, but internal instances are also at risk from internal attackers.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of the Trilium instance, allowing attackers to read, modify, or delete all notes and sensitive information stored in the knowledge base.

🟠

Likely Case

Unauthorized access to personal or organizational knowledge bases containing sensitive information, intellectual property, or credentials.

🟢

If Mitigated

Limited impact if instance is not internet-facing and network access is restricted to trusted users only.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability bypasses rate limiting on the initial sync seed endpoint, making brute-force attacks feasible without sophisticated tools.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.97.0

Vendor Advisory: https://github.com/TriliumNext/Trilium/security/advisories/GHSA-hw5p-ff75-327r

Restart Required: Yes

Instructions:

1. Backup your Trilium data. 2. Download version 0.97.0 or later from the official GitHub releases. 3. Replace the existing installation with the new version. 4. Restart the Trilium application/service.

🔧 Temporary Workarounds

Network Isolation

all

Restrict network access to Trilium instance to trusted IP addresses only

# Example firewall rule (Linux iptables): iptables -A INPUT -p tcp --dport 8080 -s TRUSTED_IP -j ACCEPT
# Example firewall rule (Windows): New-NetFirewallRule -DisplayName 'Trilium Access' -Direction Inbound -LocalPort 8080 -Protocol TCP -RemoteAddress TRUSTED_IP -Action Allow

Reverse Proxy with Rate Limiting

linux

Place Trilium behind a reverse proxy with proper rate limiting enabled

# Example nginx configuration: limit_req_zone $binary_remote_addr zone=trilium:10m rate=10r/m;
location / { limit_req zone=trilium burst=20 nodelay; proxy_pass http://localhost:8080; }

🧯 If You Can't Patch

  • Implement network-level access controls to restrict Trilium access to trusted networks only
  • Deploy a web application firewall (WAF) or reverse proxy with brute-force protection in front of Trilium

🔍 How to Verify

Check if Vulnerable:

Check if Trilium version is below 0.97.0 by accessing the application and checking the version in settings or about dialog

Check Version:

# Check version via API: curl -s http://localhost:8080/api/about | grep version

Verify Fix Applied:

Confirm version is 0.97.0 or higher and test that rate limiting is enforced on login attempts

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed login attempts from same IP without rate limiting
  • Unusual volume of requests to /api/sync/seed endpoint

Network Indicators:

  • High volume of POST requests to login or sync endpoints
  • Pattern of sequential password guessing attempts

SIEM Query:

source='trilium.log' AND (event='login_failed' COUNT BY src_ip > 10 WITHIN 1h OR uri_path='/api/sync/seed' COUNT BY src_ip > 100 WITHIN 1h)

🔗 References

📤 Share & Export