CVE-2025-34451rofl0r/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)触发。