CVE-2025-68474CVE-2025-68474是Espressif ESP-IDF物联网开发框架中的一个高危缓冲区溢出漏洞。该漏洞存在于BlueDroid AVRCP(Audio/Video Remote Control Profile)栈的avrc_vendor_msg()函数中。漏洞的根本原因是缓冲区大小验证不当:函数使用AVRC_MIN_CMD_LEN(20字节)来验证分配的缓冲区大小,但实际上在复制vendor数据之前已经写入了29字节的固定头数据。当攻击者发送具有较大vendor_len参数的AVRCP命令时,原始分配的缓冲区空间不足,导致数据写入超出分配内存边界。这种越界写入可能导致内存损坏、系统崩溃或产生其他未定义行为,严重影响设备的稳定性和安全性。该漏洞的CVSS评分为7.6,属于高危级别,攻击复杂度低且无需认证即可利用。
该漏洞的技术细节涉及ESP-IDF BlueDroid协议栈中AVRCP Vendor命令处理的实现缺陷。在avrc_vendor_msg()函数的实现中,代码使用AVRC_MIN_CMD_LEN常量(定义为20字节)来验证接收到的AVRCP命令缓冲区大小。然而,该函数的实际数据写入操作包括:AVRCP固定头(9字节)、vendor header(4字节)、以及可能的参数数据,总计在p_msg->p_vendor_data指针指向的缓冲区复制前已经写入了29字节。当处理包含较大vendor_len字段的恶意AVRCP命令时,如果vendor_len值接近或超过缓冲区限制(20字节减去29字节的偏移),就会触发缓冲区溢出。特别是在禁用断言的发布版本中,溢出范围可能更大,因为运行时检查被移除。攻击者可通过构造特制的AVRCP命令包,在相邻网络环境中触发此漏洞,导致目标设备的内存损坏、拒绝服务或潜在的可利用条件。