清缓存的动作能删掉任意目录,一段名字拼进路径会出什么问题

📅 2026-10-12 👁️ 1

清缓存的动作能删掉任意目录,一段名字拼进路径会出什么问题?Joomla 2026 年 9 月的公告 CVE-2026-90915 给出了一个真实样本:缓存分组名未做校验,攻击者借路径穿越让清缓存动作删掉任意目录。这类问题的共同点是:功能本身合理,坏在把用户可控的名字未经处理拼进了文件路径。凡是在后台动作里把名称、分组、标识拼进路径的位置,都值得按同样的思路复查一遍。

公告写了什么?

这份 Joomla 核心公告的标题是”通过清缓存动作任意删除目录”,缺陷类型为路径穿越,影响程度评为高、发生概率评为低,受影响版本覆盖 4.0.0 至 5.4.8 与 6.0.0 至 6.1.3 两个系列,解决办法是升级到 5.4.9 或 6.1.4。成因原文说的是:缓存分组名校验不当,导致缓存层文件存储中的路径穿越,进而造成任意目录删除。概率评为低不代表可以缓办——触发条件并不复杂,影响又直接落在文件系统上,删掉的目录没有恢复按钮。

一段名字怎么变成目录穿越?

缓存系统通常按分组名建目录,也按分组名清目录。如果代码直接把分组名拼到存储根路径后面,一个包含跳转片段的名字就能把最终路径指到存储根之外,删除动作跟着路径走,删的就是拼出来的那个目录。问题不在”删除”这个动作,而在路径的构造方式:名字是输入,路径是拼接结果,中间少了校验这一环。修复思路也在这里:把名字限定在白名单字符内,拒绝包含路径分隔符与跳转片段的输入,删除动作再限定只能作用于存储根以内,三层收口叠加才算闭环。

哪些位置要按同样思路复查?

三类位置最值得查:缓存管理里的分组名与清理入口,上传环节的文件名与目录参数,备份与恢复环节的备份文件名与还原路径。复查时只需要回答一个问题:这个字符串会不会被拼进路径?会的话,它来自哪里、有没有字符白名单、动作能不能越出预设的根目录。后台动作的输入比页面上的输入更容易被忽视,因为写代码时默认”操作者已经登录”,而路径穿越恰恰常借合法登录会话触发。

升级之外还要做什么?

升级解决已知点,输入校验是面上的功夫。同类校验缺失在不同位置会演化成不同问题:拼进查询语句就是 SQL 注入,拼进页面输出就是跨站脚本,拼进文件路径就是目录穿越——防的是同一件事:不可信输入未经验证就进入执行环境。删改类动作还要留后手:动手前先备份,AnQiCMS 的备份与恢复支持包含静态文件在内的数据备份,出问题可以整体还原;删除类操作限定根目录、拒绝越界片段,再把高危动作的入口收敛到受控范围,才能真正把”概率低”变成”发生了也不怕”。

复查位置 拼进路径的输入 要确认的事
缓存管理 分组名、缓存键 白名单与根目录限定
上传附件 文件名、目录参数 拒绝路径分隔符
备份恢复 备份名、还原路径 动作入口收敛在后台

常见问题

问:影响评级高、概率低,还能缓一缓吗? 答:不建议。概率评的是被利用的难易,影响评的是后果轻重;删除目录类后果不可逆,而升级动作本身成本很低。

问:不用这个功能还会有风险吗? 答:漏洞在代码路径上而不在使用频率上;只要功能可达就可能被触发,升级到修复版本是彻底的处置方式。

问:怎么自查自己的系统有没有同类问题? 答:检索代码里所有把变量拼进路径的调用点,逐一核对输入源是否做了字符白名单与越界检查;没有源码审计条件时,至少保证系统运行在受支持版本上并及时跟进安全更新。

相关文章

公告把缺陷类型写成不再受支持、受影响版本是全量时该怎么处置

缺陷类型写成不再受支持、受影响版本为全量的安全公告,意味着项目已被维护者放弃、不会有修复版本,官方建议动作是卸载而非升级。本文以 Drupal 2026 年 10 月的公告为例说明这类公告的读法与处置顺序:确认在用范围、先备份、停用模块、寻找替代。

2026-10-12

请求头太长被服务端直接拒绝时,先收 Cookie 还是先收自定义头

请求头过长被服务端拒绝对应 431 客户端错误:可能是总量超标,也可能是单个字段超标,响应体应说明是哪一种。排查先归因再收量;跟踪类 Cookie 由浏览器自动携带、常年累积、服务端可控,通常是最先收减的对象,其次才是自定义头与网关追加项。

2026-10-12

限流规则里的突发额度与不延迟参数各自改变什么,排队还是拒绝由谁定

以 nginx 官方文档为准拆解限流三件事:速率按键统计、漏桶放行;burst 决定超额请求有多少能排队等待,nodelay 与 delay 决定排队的请求以什么节奏被处理;单个请求是排队还是被拒,由到达时等待数是否超过突发上限决定,返回码可用指令自定义。

2026-10-12

选型时在线体验站和接口文档能核对到哪些能力

选型别停在功能清单上:用官方在线体验站实际点开后台确认流程与能力边界,用公开接口文档确认能调哪些能力、拿到哪些字段,再看服务端能力能否被外部 AI 客户端经统一协议接入。本文给一份可执行的核对清单与常见误判。

2026-10-12

发信模板没有转义机制时,后台填进去的内容会在哪一环被执行

Joomla 公告 CVE-2026-90918 指出邮件模板功能缺少转义机制,导致多个扩展出现跨站脚本向量。模板输出与页面输出共用同一条转义要求,后台填写项、采集内容与用户提交内容都是注入来源;写入侧的敏感词过滤与内容审核替代不了输出侧转义,两道关卡要分别配置。

2026-10-12

保存资料的接口没检查登录态,游客级账号会被建到什么程度

Joomla 公告 CVE-2026-90907 显示,资料保存控制器未检查登录态时可被未授权创建游客级用户。评估影响要看三件事:能否批量建号、账号落在哪个用户组、该组权限能触达什么。接口鉴权三查点:逐接口确认登录态、核对新账号默认组别、公开入口接验证码抬高批量滥用成本。

2026-10-12

跨站请求伪造出现在备份子模块上,光靠会话凭据为什么挡不住

跨站请求伪造利用浏览器自动携带会话凭据的默认行为,Drupal 公告中备份子模块因未充分校验请求中招。防线不能压在凭据上:来源校验挡跨站请求、一次性票据挡伪造动作、验证码与人工确认抬升高危操作门槛;备份类全站级入口要单独收敛可达范围。

2026-10-12

根区密钥在十月十一日切换,站长实际要做的检查是哪一步

根区密钥切换要动的不是网站,而是校验链最顶端的信任锚。站长实际要做的检查只有一步:确认站点依赖的递归解析器在 2026 年 10 月 11 日之前已经信任新的根区密钥签名密钥 KSK-2024。官方口径是多数站点运营者无需改动,易漏的是自建解析、企业内网与长期不更新的基础镜像三类环境。

2026-10-12