关键漏洞信息 漏洞标题 tcpreplay tcpreplay version 6fcbf03 (the newest master in https://github.com/appneta/tcpreplay) floating-point exception 漏洞描述 TCPPREPLAY Division by Zero Vulnerability in calc_sleep_time Function (PPS Mode Line 1125) 漏洞摘要 在tcpreplay包中的tcpreplay实用程序中存在一个除以零的严重漏洞。该漏洞发生在send_packets.c中的calc_sleep_time函数第1125行,当处理畸形的PPS(每秒数据包)参数时触发。这会导致浮点异常和程序终止。 技术细节 漏洞类型: 浮点异常 受影响函数: calc_sleep_time 源文件: send_packets.c 行号: 1125, 67 信号: SIGFPE (08) 漏洞机制和根本原因 此浮点异常漏洞是由于PPS参数处理逻辑中的输入验证不足引起的。根本问题在于calc_sleep_time函数中,在没有检查除数是否为零的情况下执行了除法操作。 漏洞发生条件 1. 程序处理极小的数据包速率值,导致除以零。 2. 这影响了calc_sleep_time函数中的数据包速率限制计算。 3. tcpreplay_replay函数在tcpreplay_api.c:1201处初始化数据包重放处理。 4. 控制流到'replay_replay_index'在'replay.c:54'处进行基于索引的重放。 5. 'replay_file'函数在'replay.c:179'处处理数据包流。