Telegram Desktop 一键账号接管漏洞:你的文件正在裸奔
Telegram Desktop 一键账号接管漏洞:你的文件正在裸奔
你只需要点一条链接,你的 Telegram 账号就再也不只是你的了。这不是夸张。安全研究员 beaksec 披露了一个影响 Telegram Desktop 7.2.8 及之前所有版本的严重漏洞(CVE-2026-107181,CVSS 8.1 High),攻击链从一条群聊里的链接开始,到窃走你的登录会话文件结束,全程无需任何额外操作,没有确认弹窗,没有权限提示。
一个分号,两条指令
漏洞的根源藏在 Telegram Desktop 处理”单实例”的机制里。当你点击一个 tg:// 链接时,操作系统会启动一个新的 Telegram 进程。如果检测到一个实例已经在运行,新进程不会继续启动,而是通过一个本地 socket 把链接”转交”给已运行的实例,然后自己退出。
问题在于:socket 传输的是字节,不是对象。新进程必须把 URL 序列化成一行文本发出去。Telegram 用自己的格式:每条指令是”关键字 + 参数 + 分号”。接收端按分号切割,每段当作独立指令执行。
如果 URL 本身包含分号呢?新进程把它当参数的一部分,原样写进 socket。但接收端按分号切割后,一个”指令”变成了两个。这就是经典的 IPC 注入——和 SQL 注入、命令注入是同一个套路,只是战场从数据库和 shell 换到了进程间通信。
更微妙的是,这个格式里只有四个指令:OPEN、CMD、CTRL、SHOW。CMD 只能 show/quit,SHOW 只显示内容,真正危险的是 OPEN——它接受任意 URL,不校验 scheme。这就把大门开向了 Telegram 内部一个从未注册到操作系统的 URI scheme:interpret:
一个”内部工具”变成了任意文件读取
interpret: 是 Telegram 开发团队自己用的发布工具。每次发新版,脚本会写一个文本文件,指定”发给哪个频道、发哪个文件、配什么文案”,然后启动 Telegram 并传入这个文件路径。它的设计初衷是:只有本机用户才能调用,因为攻击者要执行它,得先拿到你的电脑控制权。
但 IPC 注入打破了这个前提。攻击者不需要碰你的电脑,只需要让浏览器打开一个精心构造的链接。链接触发新进程 → 新进程通过 socket 转发 → 分号注入 → OPEN:interpret:某文件路径 → Telegram 读取磁盘上任意文件并发到指定频道。全程零交互。
关键细节:interpret: 的指令文件里,file: 字段指定要读取的文件,channel: 字段指定发送到哪个频道。函数不做任何授权检查——不问”是谁让我读的”,不问”该不该读”,打开就发。
从文件读取到账号接管
攻击链的最后一环:指令文件怎么放到受害者磁盘上的?答案藏在一个默认设置里——Telegram Desktop 在群聊中自动下载 8MB 以下的文件,不询问保存位置,直接存到固定路径。
攻击者把指令文件作为群聊附件发出,文件自动落到 Downloads/Telegram Desktop/ 下,文件名已知,路径可预测。再用 interpret: 的相对路径解析(工作目录是 Telegram 数据文件夹),构造出确定性的路径,连用户名都不用猜。
最终目标:Telegram 的登录会话文件 tdata。窃走它,攻击者就能直接登录你的账号,不需要密码,不需要验证码。整个链条——从群聊链接到账号接管——只需要受害者点一次。
修复方式与一个耐人寻味的细节
修复在 7.2.9 中完成(commit db3405699f,9 月 16 日)。改动做了三件事:彻底移除 interpret:// scheme 和 InterpretSendPath 函数;对 socket 传输值做百分号十六进制转义,让分号不再能充当边界;当同一连接上出现 OPEN 指令时,跳过 CMD 和 CTRL 指令。
但有一个细节值得注意:7.2.9 的 changelog 只提了一句”修复渲染问题”,commit 标题是”Remove legacy interpret path helper”,没有任何安全公告,没有 CVE 编号(编号是 10 月 7 日才分配的)。一个 CVSS 8.1 的远程任意文件读取漏洞,修复得如此安静。
推测原因:漏洞通过 ZDI(Zero Day Initiative)在 6 月 25 日报出,Telegram 在 9 月 16 日独立修复,ZDI 9 月 30 日关闭案例时认为已修复。整个披露流程走了 3 个多月,但用户侧几乎感知不到。对于一款日活数亿人的通讯工具,这种”静默修复”既是低调,也是一种风险——大量用户可能至今还跑在 7.2.8 或更早版本上。
现在该做什么
升级是唯一的真正修复。如果你还在用 Windows 或 Linux 版的 Telegram Desktop,立刻检查版本,7.2.9 以下全都在暴露面内。在升级之前,可以打开”每个文件询问保存位置”(关闭自动下载),这能阻断攻击链中”指令文件落盘”这一环。另外把”谁可以把你加进群”限制为联系人,能减少被拉进恶意群聊的概率。
这个漏洞的深层教训在于:IPC 是大多数桌面应用的安全盲区。开发者习惯性地信任”同一个机器上的进程”,把本地 socket 当作安全边界。但一旦本地边界被序列化漏洞击穿,”本机才安全”的内部工具就变成了远程攻击面。在 AI 时代,桌面应用越来越多地承担”本地智能体”的角色,IPC 安全的重要性只会上升,不会下降。
核心观点:一个分号的转义遗漏,加上一个从未设计给外部调用的内部工具,组合成了远程账号接管。如果你的产品有本地 IPC 或内部 API,现在就去检查:哪些”只有本机才能调用”的函数,其实一条链接就能触达?
— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn