CVE-2025-66217AIS-catcher是一款多平台AIS(自动识别系统)接收器软件。在0.64版本之前,该软件在MQTT协议解析逻辑中存在严重的整数下溢(Integer Underflow)漏洞。攻击者可以通过发送精心构造的畸形MQTT数据包,利用其中被操纵的Topic Length字段触发整数下溢条件,进而引发大规模的堆缓冲区溢出(Heap Buffer Overflow)。该漏洞无需任何认证或用户交互即可被利用,攻击复杂度低。成功利用此漏洞可导致服务立即崩溃,造成拒绝服务(DoS)攻击;当AIS-catcher被作为库文件使用时,还可能引发严重的内存破坏,从而可能被攻击者利用实现远程代码执行(RCE)。该漏洞已于版本0.64中完成修复,强烈建议所有用户立即升级到最新版本以消除安全风险。
该漏洞存在于AIS-catcher的MQTT消息解析模块中,具体位于Topic Length字段的处理逻辑。当解析MQTT数据包时,程序根据Topic Length字段的值分配内存缓冲区,但未对长度值进行充分的边界检查。在特定条件下,当Topic Length字段被设置为极小值或零值时,会触发整数下溢,导致后续的内存分配计算产生负数或极小的正值。这种异常的长度值随后被用于堆内存分配和缓冲区写入操作,由于分配的空间远小于实际写入的数据量,从而产生经典的堆缓冲区溢出。攻击者可以通过发送包含畸形Topic Length字段的MQTT数据包来触发此漏洞。溢出的数据会破坏堆内存结构,可能覆盖相邻的内存区域,包括函数指针、堆元数据等关键结构。在特定利用场景下,攻击者可以通过精心布局堆内存和构造溢出数据来实现代码执行。漏洞的利用难度较低,因为攻击者无需认证即可发送MQTT数据包,且无需目标系统的任何先验信息。