IPBUF安全漏洞报告
English
CVE-2025-34451 CVSS 7.8 高危

CVE-2025-34451 proxychains-ng 代理配置栈缓冲区溢出漏洞

披露日期: 2025-12-18

漏洞信息

漏洞编号
CVE-2025-34451
漏洞类型
缓冲区溢出
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
rofl0r/proxychains-ng

相关标签

缓冲区溢出本地攻击proxychains-ngCVE-2025-34451栈溢出内存损坏代理工具

漏洞概述

rofl0r/proxychains-ng 4.17及之前版本中存在一处栈缓冲区溢出漏洞。该漏洞位于src/libproxychains.c文件中的proxy_from_string()函数,当程序解析包含超长用户名或密码字段的代理配置条目时,会超出固定大小栈缓冲区的边界进行写入操作,导致内存损坏或程序崩溃。在特定条件下,结合目标环境的执行上下文和安全缓解措施,攻击者可能利用此漏洞实现拒绝服务攻击或进一步利用。攻击者需要诱使目标用户加载恶意构造的代理配置文件,且需要一定的用户交互才能触发漏洞。

技术细节

漏洞根源在于proxy_from_string()函数在解析代理配置时未对用户名和密码字段进行长度校验,直接将输入写入固定大小的栈缓冲区。当配置文件中proxy字符串包含超长用户名或密码时(如超过256字节),strcpy或类似不安全的字符串操作会将数据写入栈缓冲区边界之外。攻击者可通过构造恶意proxychains.conf配置文件,设置socks5或http代理并填充超长认证凭据。成功利用可覆盖栈上的返回地址和函数指针,在禁用栈保护的环境中可能实现代码执行。CVSS向量显示攻击复杂度低(AC:L)、无需认证(PR:N),但需要用户交互(UI:R)触发。

攻击链分析

STEP 1
步骤1
攻击者创建包含超长用户名和密码字段的恶意proxychains.conf配置文件
STEP 2
步骤2
通过社会工程学或文件共享等方式诱导目标用户使用该恶意配置文件
STEP 3
步骤3
目标用户执行proxychains命令加载恶意配置,触发proxy_from_string()函数
STEP 4
步骤4
函数未校验长度直接复制超长字符串,导致栈缓冲区溢出
STEP 5
步骤5
在特定环境下可覆盖返回地址实现代码执行,或导致程序崩溃(DoS)

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2025-34451 PoC - Malicious proxychains config with overflow # Generate a proxychains.conf with oversized username/password cat > /tmp/proxychains.conf << 'EOF' strict_chain proxy_dns tcp_read_time_out 15000 tcp_connect_time_out 8000 [ProxyList] socks5 127.0.0.1 9050 $(python3 -c 'print("A"*1024)') $(python3 -c 'print("B"*1024)') EOF # Trigger the vulnerability # proxychains -f /tmp/proxychains.conf <target_program>

影响范围

proxychains-ng <= 4.17

防御指南

临时缓解措施
在确认官方修复发布前,不要使用或加载来源不明的proxychains配置文件。审查现有配置文件,确保代理认证字段长度在合理范围内。可考虑暂时禁用代理认证功能或使用白名单机制限制配置文件来源。

参考链接

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