Appneta Tcpreplay 安全漏洞CVE-2025-51005
AppNeta Tcpreplay是美国AppNeta公司一套基于UNIX操作系统用于编辑和重放网络流量的开源实用程序,是开源一款网络报文回放工具。
一、基本情况
Tcpreplay是一系列工具的总称,包括tcpreplay、tcprewrite和tcpprep等一系列的工具,它可以用来在Unix系统或者linux系统上重放网络包。
Tcpreplay可将ethreal、wireshark工具抓的包原样或经过任意修改后重放回去,允许对报文做任意修改(主要是2层、3层、4层报文头)。
Tcpreplay是一种pcap包的重放工具,可以指定重放报文的速度等,用来复现抓包的情景以定位bug,以极快的速度重放从而实现压力测试。
栋科技漏洞库关注到Appneta Tcpreplay 4.5.1版本存在安全漏洞,该漏洞现在已经被追踪为CVE-2025-51005,漏洞CVSS 3.X评分为7.5。
二、漏洞分析
CVE-2025-51005位于Appneta Tcpreplay 4.5.1版本,源于tcpliveplay实用程序在处理特制pcap文件时错误处理内存,可能导致拒绝服务。
具体来说,这是一个堆缓冲区溢出漏洞,在处理手工制作的pcap文件时候,Tcpreplay程序会错误地计算源自IPv4报头的剩余数据包长度。
这一未校验的值随后被用于校验和运算,导致内存访问超出分配的缓冲区范围,Tcpreplay供应商已宣布,该功能将从4.6之后的版本移除。
三、POC概念验证
1、构建tcpreplay 4.5.1(使用ASan构建有帮助但非必需),操作系统版本基于Ubuntu 22.04.4 LTS,根据libpcap编译1.10.1。
$ export CC=gcc export CXX=g++
$ export CFLAGS="-g -fsanitize=address" export CXXFLAGS="-g -fsanitize=address"
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ sudo $HOME/tcpreplay-master/src/tcpliveplay eth0 $HOME/tcpreplay-master/a.pcap 0.0.0.0 00:00:00:00:00:00 random
2、附加上下文

3、在进入dochecksumliveplay函数之前,ntohs(iphdr->iplen)-(iphdr->iphl<<2)可能很大。
第二个do_checksum_math_liveplay函数执行与TCP相关的解析。
但是,此函数使用len作为参数,这是之前解析IP标头后的剩余值。
4、PoC文件免费下载:

四、影响范围
Appneta Tcpreplay <= 4.5.1
五、修复建议
Appneta Tcpreplay >= 4.5.1
六、参考链接
