10 月 26 日,Phoca 发布了 Phoca Download 6.1.6 安全更新,修复其前端文件操作的一个跨站请求伪造(CSRF)漏洞。安全研究方 mySites.guru 对比了 6.1.5 与 6.1.6 的代码包后发布了分析:这个漏洞本身只有 CVSS 4.0 评分 2.3(低危),单看是个脚注。真正值得每个 Joomla 站长警觉的是修复的"去向"——它只覆盖了 Joomla 6 线,而且据其统计,约七成受影响的安装根本无法从 Joomla 更新界面拿到修复。这是一篇关于"低危漏洞如何变成隐形风险"的必读案例。
漏洞本身:一个缺掉的 token 检查
Phoca Download 的前端用户控制面板提供文件的发布、取消发布和删除操作,代码在 site/controllers/user.php。6.1.6 之前,这些操作检查了登录用户是否持有分类的删除权限,却没有检查 Joomla 的防 CSRF 表单 token——这意味着攻击者构造一个页面或链接,就能让已登录用户的浏览器不知不觉地替他删除文件(连 GET 请求都能触发)。好在利用前提较苛刻:需要站点管理员把分类的删除权限授予了前端用户(默认是关闭的),且无机密性泄露、无代码执行。6.1.6 的修复很干净:三个操作统一走一个处理器,第一步就调用 checkToken('request')。
真正的问题:修复版不含修复
如果故事到此为止,这只是一次正常的安全响应。但 mySites.guru 核对版本线后发现:修复只发布在 Joomla 6 线(6.1.6);Joomla 3、4、5 收到的是 3.2.3、4.0.9 和 5.1.3——这三个版本号看起来都是"新版本",却都不包含 token 检查的修复。老版本线的用户打开更新界面,要么看到一个"仍是漏洞"的版本号,要么什么都看不到。统计显示约七成受影响安装无法从更新器拿到真正的修复。
这不是孤例,而是 Phoca 今年的固定模式:7 月的 Phoca Download 上传漏洞只修了 6.x 线;8 月的 Phoca Cart 产品过滤 SQL 注入把 Joomla 3 和 4 落在了后面;10 月的 Phoca Cart 下载 IDOR 只修 6.x;三天前披露的 Phoca Gallery EXIF 存储型 XSS,让 Joomla 4 和 5 的站点拿着"看似最新"的版本号运行着未修复的代码。Phoca 每次修复都很迅速——问题不在速度,而在发布说明从不说明哪些版本线被落下了。
给中文用户的行动清单
正在运行 Joomla 6 + Phoca Download 的站点:直接升级到 6.1.6,后台更新界面即可,顺手检查前端用户分类删除权限是否确实需要开放。Joomla 5 的站点:更新器给不了你修复,从 GitHub 手动下载 6.1.6 包安装(作者确认 6.1.6 可用于 Joomla 5 环境——以官方 manifest 为准)。Joomla 3/4 且在用任何 Phoca 扩展的站点:这次低危漏洞的后果可能有限,但请把它当作一次预演——去后台检查 Phoca 扩展的分类权限设置,并认真评估升级到 Joomla 6 的计划。
所有站点都适用的通用教训:把每一个 Phoca 安全版当作需要手动核对的更新——读扩展的 manifest 文件、对比更新器提供的版本号与官方修复版本号,在证明无缺口之前假设缺口存在。这个建议其实适用于所有多版本线的扩展厂商,下一家未必这么"温和",下一个漏洞未必是 2.3 分。
总结
安全公告里最危险的数字不是 CVSS 评分,而是你以为自己已经修好、实际上没有的那次"更新成功"。Phoca Download 这次事件给中文站长的启示有两层:短期,用 Phoca 扩展的老版本站点需要手动核对修复覆盖情况;长期,"更新器说已是最新"永远不该是安全审计的终点——版本号会撒谎,代码不会。


评论 (0)