TeamViewer 通过屏幕尺寸的 RCE,已在 15.83 修复(CVE-2026-111585)
恶意的 TeamViewer 主机通过一次被截断的屏幕尺寸乘法,在前来提供帮助的 Viewer 上执行代码;请将每个客户端更新到 15.83。
TL;DR
- TeamViewer 客户端的屏幕解码器用 32 位运算乘以主机宣布的屏幕尺寸。因此,恶意或已被攻陷的主机可以在前来连接的 Viewer 上执行代码。Remedio 于 2026 年 10 月 29 日公开了这项研究,TeamViewer 在 15.83 中修复了它。
- 15.83 之前的每个客户端组件都受影响:Windows、Linux 和 macOS 上的 Full Client 与 Host、Windows 便携版客户端和 Android Remote Control 应用,加上 15.64、14.7 和 13.2 传统系列。厂商表示 TeamViewer 已安装在超过 25 亿台设备上。
- 公告 TV-2026-1011 将该缺陷评为 High,CVSS v3.1 8.8,并且没有发布概念验证。同一 15.83 版本还带来另外两个缺陷:可从会话录制触达的越界写入,以及 macOS 上到 root 的本地提权。
- TeamViewer 声明不知道有任何在野利用,截至 2026 年 11 月 2 日,该缺陷也不在 CISA 的已知被利用漏洞(KEV)目录中。将每个客户端更新到 15.83,或其所属传统系列的修复版本,并继续阅读需要检查什么。
您是否受影响?
满足第一个条件,并且至少满足另外两个条件之一时,您处于暴露状态:
- 某个 TeamViewer 客户端组件版本低于 15.83。受影响组件包括 Windows、Linux 和 macOS 上的 Full Client 和 Host,以及 Windows 便携版客户端和 Android Remote Control 应用。
- 对 CVE-2026-111585 而言,攻击者是您的操作人员所接受会话中的远程主机。该主机可能由攻击者运营,也可能是一台会话流量或账户已被接管的真实机器。攻陷发生在会话打开时、任何工作开始之前。
- 对录制路径 CVE-2026-92372 而言,用户在 Linux 或 macOS 的 Full Client 上打开来自不受信任来源的伪造 TeamViewer 会话录制,即
.tvs文件。
| 分支 | 受影响版本 | 修复版本 |
|---|---|---|
| Full Client 与 Host,Windows、Linux、macOS | 15.83 之前 | 15.83(2026 年 10 月 27 日) |
| 便携版客户端,Windows | 15.83 之前 | 15.83 |
| Remote Control 应用,Android | 15.83 之前 | 15.83 |
| 传统系列 15.64,Windows 7 和 8 | 15.64.10 之前 | 15.64.10 |
| 传统系列 14.7,Windows、Linux、macOS | 14.7.48868 之前 | 14.7.48868 |
| 传统系列 13.2,Windows | 13.2.36231 之前 | 13.2.36231 |
| 传统系列 13.2,Linux | 13.2.154008 之前 | 13.2.154008 |
| 传统系列 13.2,macOS | 13.2.154007 之前 | 13.2.154007 |
Remedio 测试了 15.80.6.0 的 Windows Viewer 并确认其受影响,还观察到 15.82.6.0 中仍存在有缺陷的构造函数,因此边界确实是 15.83。检查您运行的内容:
(Get-Item "C:\Program Files\TeamViewer\TeamViewer.exe").VersionInfo.FileVersion
在 Android 上,应用版本显示在设置的“应用程序”下,或 Play Store 的商品信息中。Android Remote Control 应用带有相同的屏幕解压缺陷,因此请把受管理的手机也纳入版本清查。
如何修复?
将每个客户端组件更新到 15.83,或其所属系列的修复版本:
- 从应用的更新提示更新 Full Client 和 Host,或从厂商下载 15.83 并安装在现有客户端之上。
- 将便携版客户端替换为厂商知识库中的 15.83 版本,因为便携安装不会自行更新。
- 从 Play Store 更新 Android Remote Control 应用,并确认版本显示为 15.83 或更高。
- 对固定在传统系列上的主机,应用该系列的修复版本,公告的“已修复版本”部分按平台给出了链接。
没有任何配置型变通方案,因为接受会话是产品的正常工作模式,而缺陷在会话打开时触发。任何缓解措施的局限都很直白。限制哪些伙伴可以连接可以减少谁能攻击您,但操作人员仍在帮助的每一台主机仍可能成为恶意几何形状的来源。
根本原因是什么?
Viewer 用一个在 32 位运算中回绕的尺寸来分配屏幕位图。 保护后续写入的边界检查读的却是未截断的尺寸。该组件是 CBitmapBuffer,即当会话不使用硬件视频解码器时 Viewer 的回退解码表面。
会话以来自主机的 DisplayParams 消息开始,其中携带宽度、高度和色深。Viewer 根据这些数字分配位图,写入路径如下:
// width, height, bpp_bits all originate in the peer
// DisplayParams message, unchecked.
// stored at plane+0x20, NOT truncated
stride = (bpp_bits * (width + 0x10)) >> 3;
// 32-bit multiply: wraps mod 2^32
plane.byteSize = (uint32)(stride * (height + 0x10));
// allocates the WRAPPED size
buf = operator_new[]( (ulong)(stride * (height + 0x10)) );
该乘法以 32 位求值并回绕,只有回绕后的余数到达分配。存储的宽度和高度保留主机的完整值。RLE 解码器中的矩形检查随后将每次更新与声明的尺寸比较,从不与已分配的字节比较:
if ((D_height < y2) || (D_width < x2))
return "invalid rectangle";
// D_width / D_height are the DECLARED dims (untruncated)
// otherwise, for y in [y1, y2):
// write pixels at base + y*stride + (x*bpp >> 3)
该路径上没有任何东西对宣布的几何形状强制上限。因此主机选择的尺寸可以使分配与写入许可相差近 2 的 32 次方。主机还可以随意将 Viewer 引到这个表面上。它拒绝协商 AV1 或 H.264 视频编解码器,从而强制走位图表面所服务的无损瓦片路径。
如何被利用?
公开的研究从一次被接受的会话展开攻击:
- 攻击者运营一台主机,或接管一台真实主机的端口,受害者的 Viewer 前来提供帮助。受害者接受会话;这就是 CVSS 向量记录为 UI:R 的唯一交互。
- 主机拒绝视频编解码器协商,因此 Viewer 回退到
CBitmapBuffer和 RLE 瓦片解码器。 DisplayParams宣布一个 32768 乘 32768、每像素 32 位的屏幕。预期大小为 4,299,162,624 字节;回绕后的分配为 4,195,328 字节,约 4 MB,而该表面仍声称有 32,784 行。- 一个矩形覆盖全部声明尺寸的屏幕更新使解码器把整个表面写入该缓冲区。在标准的 Windows 上,这是一个干净且可复现的崩溃:普通会话中发生的远程拒绝服务。
- 为了执行代码,攻击者刻意缩小分配。宣布宽度 0xFFFFFFF5、高度 1、每像素 8 位,据研究的测量,会把分配回绕为约 0x440 字节的缓冲区。这使分配落入一个较小的堆尺寸类别,紧邻可布置的对象。
- 溢出破坏一个随后 Viewer 通过其自身首字段中的指针调用的活动对象。覆盖该指针即可重定向调用,研究将其经栈切换路由到
WinExec,同时击破了控制流防护和 DEP。
所演示的代码执行运行在出厂二进制上,客户端为当时的最新版本(15.83 之前)且常规防御开启。在演示中,破坏字节由一个主机侧钩子放置,它驱动完全相同的代码路径,并在堆布置步骤中充当线上瓦片载荷的替身。
攻击如何流动?
一次被接受的会话就是全部攻击面,而回绕的分配把主机的屏幕几何形状变成对 Viewer 进程的控制。
去帮助一台敌对主机"] --> B["主机拒绝视频编解码器,
Viewer 回退到 CBitmapBuffer"] B --> C["DisplayParams 宣布
32768 x 32768、32 bpp"] C --> D["尺寸乘法在 32 位中回绕,
小分配、完整画布,
缺少边界检查"] D --> E["全覆盖矩形写到
分配之外"] E --> F["随意崩溃,或堆布置到
Viewer 上的代码执行"]
攻击者能做什么?
已证明的上限是在会话打开瞬间、以运行 Viewer 的账户权限在 Viewer 进程中执行代码:
- 攻击者可以随意让 Viewer 崩溃,这是在普通会话中达成的远程拒绝服务。
- 通过尺寸类别布置,攻击者把同一写入转换成在 Viewer 上执行其选择的程序,在当时的最新版本(15.83 之前)且启用了控制流防护和 DEP 的 Windows 客户端上得到了演示。
- CVE-2026-92372 的录制路径把同样的影响扩展到 Linux 和 macOS 的 Full Client,方式是用户打开一个伪造的
.tvs会话录制,无需主机。 - 另外,CVE-2026-92374 让 macOS 上低权限的本地攻击者获得 root,途径是安装程序特权助手中检查与使用之间的竞争以及符号链接处理。
主缺陷的条件很少且具体:攻击者必须控制操作人员所接受会话的主机端,或控制 Viewer 连接的一个端口。操作人员看到的是一个正常打开的会话,攻陷既不需要窃取密码,也不需要进一步交互。
修复为什么有效?
TeamViewer 是闭源软件,因此没有公开的补丁差异。公告在 15.83 中为所有现行产品修复了该缺陷,并将其回移植到三个传统系列。Remedio 从外部验证了边界:该构造函数仍存在于 15.82.6.0 中,而 15.83 解决了问题。
修复必须做什么可以从根本原因推导。分配和边界检查为同一表面读取两个不同的数字,因此完整的修复让每次写入对照实际分配的字节进行验证。它还在创建位图之前,将宣布的几何形状对照上限进行验证。
厂商的评级,即以更新到最新版本为唯一补救的 Important 公告,与这一范围相符。
如何检查是否被入侵?
公告和研究都没有公布危害指标。痕迹来自已公开的攻击机制:
Get-WinEvent -LogName Application | Where-Object { $_.Message -match "TeamViewer" } | Select -First 20
应用程序日志中无法解释的 TeamViewer.exe 崩溃标志着拒绝服务变种。代码执行变种将其载荷作为 Viewer 的子进程启动。请在进程创建遥测中检查任何父进程为 TeamViewer.exe 或 TeamViewer_Desktop.exe 且操作人员无法解释的进程。
围绕任何此类事件,检查 TeamViewer 管理控制台中的连接记录,查找与不受信任伙伴的会话;如果载荷已运行,请将操作人员的账户视为已被攻陷。
对录制路径,在受管端点上搜索来自不受信任来源的 .tvs 文件,并在更新后删除。更新前打开的伪造录制与敌对主机具有相同的效果。
时间线
- 2026-08-14:Remedio 向 TeamViewer Product Security 报告 Viewer 缺陷。
- 2026-10-22:TeamViewer 以 CVSS v3.1 8.8 接受该发现并分配 CVE-2026-111585。
- 2026-10-27:TeamViewer 发布 15.83、公告 TV-2026-1011 和三个 CVE 记录,并将公告评为 Important。
- 2026-10-29:Remedio 发布技术分析,作者 Omri Dar。
- 2026-11-02:TeamViewer 声明不知道有利用行为,这些缺陷不在 CISA 的 KEV 目录中。
FAQ
Android 应用受影响吗?
受影响。按照公告的受影响产品列表,Android Remote Control 应用在 15.83 之前带有相同的远程控制屏幕缺陷。使用 TeamViewer 控制其他设备的受管理手机同样需要更新。
强大的 TeamViewer 密码能阻止它吗?
不能。该攻击在操作人员有意接受的会话内部传播。主机从不需要 Viewer 的密码,攻陷在会话打开时完成,早于 Viewer 向主机所做的任何认证产生影响。
会话录制怎么办?
伪造的 .tvs 录制是 Linux 和 macOS 上的第二条传播路径,编号为 CVE-2026-92372,评分同为 8.8。请把来自不受信任来源的录制当作程序对待,因为在未打补丁的客户端上它们正是如此。
这与 TightVNC Viewer 缺陷是同一类缺陷吗?
是的,同一周在远程访问 Viewer 中出现了同一模式的两次独立披露。主机宣布屏幕几何形状,Viewer 截断尺寸计算,解码路径写到分配之外。SSD Secure Disclosure 于 2026 年 10 月 29 日连同公开利用程序发布了 TightVNC 缺陷。任何根据对端宣布的尺寸来分配缓冲区的远程访问工具都值得被问到同样的问题。
MeshCentral 怎么样?
另外单独说明,这不是漏洞披露:开源远程管理服务器 MeshCentral 的维护者于 2026 年 10 月 23 日发布了紧急安全更新。发布说明警告有攻击者正在接管服务器及其远程客户端,并敦促立即升级到 1.3.1。
该发布说明就是全部披露,它没有对应的公告或 CVE。这是攻击面的同一个角落:支持工具对其所连接机器的信任。
它在野外被利用了吗?
TeamViewer 声明在发布之时不知道有任何主动利用。截至 2026 年 11 月 2 日,这些缺陷不在 CISA 的 KEV 目录中。研究演示是实验室结果,不是现场报告。
参考文献
- TeamViewer 安全公告 TV-2026-1011,三个 CVE 与已修复版本矩阵:https://www.teamviewer.com/en/resources/trust-center/security-bulletins/tv-2026-1011/(2026 年 10 月 27 日发布;2026 年 11 月 2 日核查)
- Remedio 研究“Remote Code Execution in TeamViewer”,完整技术分析:https://remedio.io/research/vulnerability-disclosures/remote-code-execution-in-teamviewer/(2026 年 10 月 29 日发布;2026 年 11 月 2 日核查)
- CVE-2026-111585 记录,TeamViewer CNA,CVSS v3.1 8.8:https://www.cve.org/CVERecord?id=CVE-2026-111585(2026 年 10 月 27 日发布;2026 年 11 月 2 日核查)
- CVE-2026-92372 记录,会话录制路径:https://www.cve.org/CVERecord?id=CVE-2026-92372(2026 年 10 月 27 日发布;2026 年 11 月 2 日核查)
- CVE-2026-92374 记录,macOS 本地提权:https://www.cve.org/CVERecord?id=CVE-2026-92374(2026 年 10 月 27 日发布;2026 年 11 月 2 日核查)
- SSD Secure Disclosure,“TightVNC Viewer Pre-auth RCE”,同一周对同一 Viewer 模式的披露:https://ssd-disclosure.com/tightvnc-viewer-pre-auth-rce/(2026 年 10 月 29 日发布;2026 年 11 月 2 日核查)
- MeshCentral 1.3.1 发布说明,针对活跃攻击的紧急升级警告:https://github.com/Ylianst/MeshCentral/releases/tag/1.3.1(2026 年 10 月 23 日发布;2026 年 11 月 2 日核查)
- TeamViewer 伴随公告 TV-2026-1012,Remote Management 附加组件:https://www.teamviewer.com/en/resources/trust-center/security-bulletins/tv-2026-1012/(2026 年 11 月 2 日核查)
- CISA 已知被利用漏洞目录,针对 CVE-2026-111585、CVE-2026-92372 和 CVE-2026-92374 核查的数据源:https://www.cisa.gov/known-exploited-vulnerabilities-catalog(2026 年 11 月 2 日核查)