CVE-2025-64711PrivateBin是一款开源的零知识在线粘贴板服务,服务器对粘贴数据没有任何知情权。然而在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编码,转义<、>、"、'、&等字符。