CVE-2026-24422phpMyFAQ是一款开源的FAQ(常见问题解答)Web应用程序。在4.0.16及以下版本中,多个公共API端点由于访问控制不足,不当暴露了敏感用户信息。具体而言,OpenQuestionController::list()端点在默认情况下以showAll=true调用Question::getAll()方法,返回标记为非公开(isVisible=false)的记录以及用户电子邮件地址。此外,评论、新闻和FAQ相关的API也存在类似的信息泄露问题。此信息泄露漏洞可能使攻击者能够收集电子邮件地址用于钓鱼攻击,或访问明确标记为私有的内容。攻击者无需认证即可利用此漏洞,通过构造特定的API请求即可获取敏感信息。该问题已在4.0.17版本中修复。
该漏洞源于phpMyFAQ 4.0.16及以下版本中API端点的权限控制缺陷。OpenQuestionController::list()端点默认调用Question::getAll()方法时设置showAll参数为true,导致即使内容被标记为不可见(isVisible=false),系统仍会返回这些记录的完整信息,包括用户注册的电子邮件地址。攻击者可以通过以下方式利用此漏洞:1) 直接访问公共API端点,无需任何认证;2) 构造请求参数触发showAll逻辑;3) 批量请求获取所有非公开的问题记录及其关联的用户邮箱。类似的问题也存在于comment、news和FAQ等API模块中。攻击者可以利用泄露的邮箱信息进行精准钓鱼攻击,或进一步分析非公开内容寻找其他可利用的安全弱点。漏洞的技术根因在于后端未对API响应进行权限校验,未根据当前用户的访问权限过滤敏感数据。