CVE-2025-34450CVE-2025-34450是merbanan/rtl_433项目中的一个高危安全漏洞,CVSS评分达到7.8分。该漏洞存在于src/rfraw.c文件中的parse_rfraw()函数,是典型的栈缓冲区溢出问题。攻击者可以通过构造恶意或过大的原始RF输入数据,使应用程序在处理时超出栈缓冲区的边界进行写入操作,从而导致内存损坏或程序崩溃。
rtl_433是一款广泛使用的开源软件,用于接收和解码各种433MHz频段的无线设备信号,如气象站、胎压监测器、远程控制设备等。该软件在树莓派和各种嵌入式系统中被大量部署,用于物联网数据采集和智能家居场景。由于其处理外部输入的特性,漏洞可被远程触发。
根据漏洞披露信息,该漏洞可被利用造成拒绝服务(DoS),在特定条件下还可能基于执行环境和现有安全缓解措施进行进一步利用。漏洞发现者为VulnCheck安全团队,于2025年12月18日正式披露。
该漏洞的根本原因在于parse_rfraw()函数在处理原始RF数据时缺乏适当的边界检查。在src/rfraw.c的实现中,函数使用栈上分配的固定大小缓冲区来存储输入数据,但未验证输入数据的长度是否在缓冲区容量范围内。当接收到超长的RF原始数据时,memcpy或其他内存写入操作会将数据直接写入栈缓冲区边界之外的内存区域。
攻击者可以通过向rtl_433应用程序提供精心构造的RF输入数据来触发此漏洞。由于这是栈缓冲区溢出,攻击者有可能覆写栈上的返回地址、函数指针或其他关键数据结构,从而控制程序执行流程。在启用栈保护(stack canary)的系统上,程序可能会在检测到溢出时崩溃;在未启用保护的系统上,则可能实现任意代码执行。
漏洞的利用需要攻击者具备本地访问权限(AV:L),低权限用户(PR:L)即可触发,无需用户交互(UI:N)。受影响的产品为rtl_433,版本从初始版本到25.02版本均受影响,修复版本为commit 25e47f8之后的版本。