Asterisk是开放源码的软件PBX,支持各种VoIP协议和设备。 Asterisk IAX2隧道驱动(chan_iax2)中存在栈溢出漏洞,远程攻击者可能利用此漏洞控制服务器。 如果向chan_iax2传送了数据负载大于4 kB的RTP帧的话,就可能触发这个漏洞。如果要触发这个漏洞,调用iax2_write()的帧应满足以下条件: * 语音或视频帧 * 4字节的时间戳与之前所发送帧高2字节相同 * 格式为预期格式 * 数据负载大于4kB iax2_write()调用iax2_send()发送帧。在iax2_send()中,有一个条件检查确定是否应立即发送帧或排在队列中。如果确定应在队列中之后发送,就会动态的分配iax_frame结构,数据缓冲区大小为ast_frame数据的大小。但是,如果立即发送帧的话,就会使用栈分配的iax_frame,数据缓冲区大小为4096字节。之后,使用iax_frame_wrap()函数将数据从ast_frame结构拷贝到了iax_frame结构,这就可能触发溢出。
Asterisk是开放源码的软件PBX,支持各种VoIP协议和设备。 Asterisk IAX2隧道驱动(chan_iax2)中存在栈溢出漏洞,远程攻击者可能利用此漏洞控制服务器。 如果向chan_iax2传送了数据负载大于4 kB的RTP帧的话,就可能触发这个漏洞。如果要触发这个漏洞,调用iax2_write()的帧应满足以下条件: * 语音或视频帧 * 4字节的时间戳与之前所发送帧高2字节相同 * 格式为预期格式 * 数据负载大于4kB iax2_write()调用iax2_send()发送帧。在iax2_send()中,有一个条件检查确定是否应立即发送帧或排在队列中。如果确定应在队列中之后发送,就会动态的分配iax_frame结构,数据缓冲区大小为ast_frame数据的大小。但是,如果立即发送帧的话,就会使用栈分配的iax_frame,数据缓冲区大小为4096字节。之后,使用iax_frame_wrap()函数将数据从ast_frame结构拷贝到了iax_frame结构,这就可能触发溢出。