CVE-2025-34449CVE-2025-34449是Genymobile/scrcpy项目中的一个严重缓冲区溢出漏洞,CVSS评分高达9.1分(严重级别)。该漏洞存在于scrcpy的sc_device_msg_deserialize()函数中,存在于3.3.3及之前的所有版本中。攻击者可以通过被入侵或恶意控制的Android设备向运行scrcpy的主机发送精心构造的消息,利用此漏洞触发缓冲区溢出,导致越界读取操作。这种越界读取可能造成内存损坏,进而引发拒绝服务(DoS)条件,甚至可能为攻击者提供在主机系统上进一步利用的机会。由于scrcpy是一款广泛使用的Android屏幕镜像和控制工具,许多开发者和安全研究人员都依赖此工具进行日常工作和安全测试,因此该漏洞的影响范围较广。建议用户尽快升级到修复版本或应用临时缓解措施以降低风险。
该漏洞发生在scrcpy的消息反序列化过程中,具体位于sc_device_msg_deserialize()函数。当Android设备通过USB或网络连接到运行scrcpy的主机时,双方会进行消息交换以传递设备信息、控制指令等数据。攻击者可以控制Android设备发送恶意构造的消息包,该消息包含超出预期的数据长度或格式错误的数据字段。在反序列化处理过程中,函数未能正确验证输入数据的长度和边界,直接将数据写入预分配的缓冲区,导致缓冲区溢出。由于C语言中的数组操作和指针运算缺乏内置的边界检查,溢出的数据可以覆盖相邻的内存区域,包括重要的控制流数据如返回地址和函数指针。攻击者可能通过精心设计溢出数据来劫持程序执行流程,实现远程代码执行。修复版本通过在commit 3e40b24中添加了适当的长度验证和边界检查来解决此问题。